Class.newInstance()
ist als veraltet markiert. Die Dokumentation schlägt keine Alternativen vor. Wie sollen wir jetzt Instanzen erstellen?
Class.newInstance()
ist als veraltet markiert. Die Dokumentation schlägt keine Alternativen vor. Wie sollen wir jetzt Instanzen erstellen?
Antworten:
So zitieren Sie das Javadoc von Java 9 :
Der Anruf
clazz.newInstance()
kann ersetzt werden durch
clazz.getDeclaredConstructor().newInstance()
getConstrouctor
, beachten Sie jedoch, dass nur öffentliche Konstruktoren zurückgegeben werden. Beachten Sie auch, dass newInstance
dies in Java 8 nicht veraltet ist (obwohl die Verwendung immer noch alle Probleme aufweist, die die JDK-Entwickler dazu veranlasst haben, es in 9 zu
Class.getDeclaredConstructor(...).newInstance(...)
In der Dokumentation von Google errorprone (zum Beispiel) finden Sie eine Beschreibung der Gründe .