我正在写一段代码,如果它是某个类的实例,我必须转换它.
像往常一样,我用它instanceof来检查兼容性.
问题是从不满足检查,因为对象属于"奇怪"类.
例如; 当我getClass().getSimpleName()在这个对象上调用方法时,它会返回类的名称+ $*(例如,ViewPart$1而不是ViewPart).
这$*意味着什么?有解决方案或解决方法吗?
Jon*_*eet 15
这显示了一个内部类(匿名(如果它有一个数字)或命名).例如:
class Foo {
static class Bar {
}
}
Run Code Online (Sandbox Code Playgroud)
班级的名字Foo.Bar是Foo$Bar.现在,如果我们有:
class Foo {
static void bar() {
Runnable r = new Runnable() {
public void run() {};
};
System.out.println(r.getClass());
}
}
Run Code Online (Sandbox Code Playgroud)
那将打印出来Foo$1.
您可以在javac创建的类文件的命名中看到相同的效果.