我有一个名为StreamGo的课程。它还有4个同名文件,如:StreamGo $ 1,StreamGo $ 2等。所有这些类文件都有不同的代码集。我如何合并它们?为什么这些类文件是用$ 1和$ 2等创建的?
请帮忙。
答案 0 :(得分:2)
为StreamGo.java
中定义的匿名内部类自动生成这些类文件。例如,如果你有这样的东西:
final Runnable runnable = new Runnable() {
public void run() {
// ...
}
};
然后您将StreamGo$1.class
用于匿名实施您在此处定义的Runnable
。
命名嵌套类会做很多相同的事情,除非你得到他们的名字而不是数字部分。
答案 1 :(得分:1)
这些是您在类中创建的匿名类的编译器生成的类。
由于Java字节码需要为每个类单独的.class
文件,因此无法合并它们。
您可能希望将所有.class
个文件放入.jar
。
答案 2 :(得分:1)
如果java文件中有内部类,则编译器将创建一个名为Java文件的类文件以及$。您无法组合这些类文件。但是如果要复制这些类文件,请确保复制所有以$符号开头的类文件!否则它将无法正常工作