targetClass = Class.forName(className).newInstance().getClass();
我在這裏的問題是,爲什麼他叫的newInstance()的getClass();
難道是足夠寫
targetClass = Class.forName(className);
?
targetClass = Class.forName(className).newInstance().getClass();
我在這裏的問題是,爲什麼他叫的newInstance()的getClass();
難道是足夠寫
targetClass = Class.forName(className);
?
沒有意義調用newInstance().getClass()
,因爲它將產生與其實例化的實例相同的Class
實例。
相反,它會創建一個額外的實例,該實例將被立即「刪除」。即使它不起作用,如果該類沒有默認的構造函數。
此外,實例化,初始化等的成本可能是顯着的。
是的。
Class<T> targetClass = Class<T>.forName(className);
而對象創建更好地使用getConstructor。
T obj = targetClass.getConstructor().newInstance();
調用Class.newInstance表現出javadoc中提到的問題。
是的,不需要創建新實例 –