1

这两种说法有什么区别:-

1)

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemServic(context.CONNECTIVITY_SERVICE);

2)

Class  connectivityClass = Class.forName(connectivityManager.getClass().getName());

因为,我可以解释两者都给了我 ConnectivityManager 类的实例。

4

1 回答 1

1

在第二种方法中,您使用反射来创建 ConnectivityManager 类的对象,该对象具有性能开销。因此,如果可以,特别建议避免反射,因为从第一种方法开始,您可以在没有反射的情况下创建 ConnectivityManager 的对象。

由于安全性,某些 JVM 甚至可能不允许您通过反射创建对象。此外,使用通过反射创建的对象也会使您的生活更加困难

有关反射的更多详细信息,请查看: http ://docs.oracle.com/javase/tutorial/reflect/index.html

于 2013-03-07T11:35:04.470 回答