2013-03-07 40 views
1

什麼是這2個statments差異性之探源: - ))差異。黑/白2種方式獲取實例連接管理器

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemServic(context.CONNECTIVITY_SERVICE); 
Class connectivityClass = Class.forName(connectivityManager.getClass().getName()); 

如,我可以解釋都給了我ConnectivityManager類的實例。

回答

1

在第二種方法中,您使用反射來創建ConnectivityManager類的一個對象,該對象帶有性能開銷的價格。因此,如果可以的話,建議避免反射,因爲從第一種方法開始,您可以創建ConnectivityManager的對象而無需反射。

某些JVM甚至可能不允許您通過安全性進行反射來創建對象。此外,它會讓你的生活變得更加困難,使用對象創建 通過反射

對於以細想一下更多詳情: http://docs.oracle.com/javase/tutorial/reflect/index.html

+0

感謝您的答覆... :) – 2013-08-31 13:56:58