从包中访问类



我正在开发一个android测试应用程序,我将访问android.view package的所有内部类。android。视图是存在于jar文件中的包。我尝试通过加载包名,但它不显示类,如果有人尝试这个已经有了,请帮忙。

这是我到目前为止尝试的:

public static void main() throws ClassNotFoundException{
    Class o =Class.forName("android.view");
    Class[] C=o.getDeclaredClasses();
    for(int i=0;i<C.length;i++) {
    Classname = C[i].getName();
    ClassesDisplayActivity.your_array_list3.add(Classname);
   Log.i("Ramu","classname "+ C[i].getName());
 }
}
}

不可能在运行时使用标准类装入器确定包中的所有类。

使用这个库可能会有一些运气:

https://code.google.com/p/reflections/

Package不是一个类。不能为包调用Class.forName(),也不能使用getDelcaredClasses()访问属于类的类。

我不知道你真正需要的是什么,所以我建议你在另一个问题中解释。也许你会得到更好的解决方案。

然而,如果你真的需要这个,你必须这样做:

  1. 通过调用System.getProperty(java.class.path)
  2. 获取类路径
  3. 用冒号
  4. 将此属性拆分为其元素
  5. 遍历列表并读取每个资源。如果资源是jar,你可以使用ZipInputStream,如果是目录,使用File类。
  6. 过滤你在#3得到的资源列表。

幸运的是,你可以使用名为Reflections的第三方库来帮助你完成所有这些,而无需编写代码。

相关内容

  • 没有找到相关文章

最新更新