我在adnroid 2.2sdk上,无法在多用户聊天类中执行我的静态块。我试着把它装成
try
{
String qual = MultiUserChat.class.getName();
ClassLoader.getSystemClassLoader().loadClass(qual);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
它总是会碰到障碍物。Qual'获取类的有效名称…会是什么?
最佳答案
您的应用程序既包括arraylist和activity之类的框架类,也包括flashlightactivity之类的应用程序类。框架类由系统类加载器(以及引导类加载器)加载;应用类由应用类加载器加载。
系统类加载器只能看到系统类。它不知道应用程序类路径,也不能用于加载应用程序类。您需要使用应用程序类加载器来完成这项工作。获取对应用程序类加载器的引用的最简单方法是通过应用程序类:
try {
String qual = MultiUserChat.class.getName();
MyActivity.class.getClassLoader().loadClass(qual);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}