mardi 13 novembre 2018

Java 9 replace Class.newInstance

Class.newInstance was deprecated in Java 9:

clazz.newInstance()

can be replaced by

clazz.getDeclaredConstructor().newInstance()

The problem is that getDeclaredConstructor returns any constructor without regarding the access level.

If I want to replace all occurrences in my code (on different packages/access level) should I use getConstructor to get the public constructor?

the Constructor object of the public constructor that matches the specified parameterTypes

Or can't I bulk replace all occurrences because it needs to be per case (if a public constructor exists and/or if I have the right access level for the class)?

EDIT

getDeclaredConstructor:

   return getConstructor0(parameterTypes, Member.DECLARED);

getConstructor:

   return getConstructor0(parameterTypes, Member.PUBLIC);





Aucun commentaire:

Enregistrer un commentaire