Od Class.newInstance() do refleksji konstruktora
Zastąp przestarzałe Class.newInstance() jawnym wyszukiwaniem i wywołaniem konstruktora.
Plugin plugin = pluginClass.newInstance();
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
Obsługiwane API
Eliminuje użycie przestarzałego Class.newInstance().
Jawny konstruktor
Żądana sygnatura jest widoczna i może przyjmować argumenty.
Uczciwe błędy
Wyjątki konstruktora są reprezentowane przez InvocationTargetException.
Zalecane od czasu oznaczenia Class.newInstance() jako przestarzałego w JDK 9 (wrzesień 2017).
Class.newInstance() jest przestarzałe, ponieważ może ominąć kontrolę podczas kompilacji wyjątków zgłaszanych przez konstruktor i obsługuje wyłącznie konstruktor bezargumentowy. Jawne wyszukiwanie konstruktora uwidacznia wybraną sygnaturę i zgłasza błędy wywołania refleksyjnego za pomocą odpowiednich wyjątków refleksji. Reguły modułów i dostępu nadal obowiązują; ten wzorzec nie zaleca omijania hermetyzacji.