是否可以找到给定包中的所有类或接口?(快速查看例如Package,它似乎没有.)
我一直在使用Eclipse作为我的开发IDE.我还用它将我的应用程序导出到.jar文件中.当我在.jar文件中查看我的类时,我的一些类包含该类的名称,一个美元符号,然后是一个数字.例:
我注意到它在更大的课程上做到这一点.这是因为这些类变得如此之大,它会将它编译成多个类吗?我用Google搜索并查看了多个论坛,并搜索了Java文档,但没有发现任何与之相关的内容.有人能解释一下吗
我使用以下代码来实例化某个包中包含的所有类.
DexFile df = new DexFile(getPackageCodePath());
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements(); ) {
String className = iter.nextElement();
if (className.contains(packageName) && !className.contains("$")) {
myClasses.add(Class.forName(className).newInstance());
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它不再正常工作了.从Android Studio 2和Gradle 2.0.0开始,DexFile条目不再包含应用程序中的所有类,而只包含属于该com.android.tools包的类.
这是一个已知的问题?