我在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();
}

09-08 03:00