我正在为RCP应用程序开发插件。
在plugin.xml
内,我需要在给定的扩展点注册某些类。
这些类之一是匿名(?)类,其定义如下:
package de.me.mypackage;
import org.something.AnotherClass;
public class ClassOne {
...
public static AnotherClass<ClassOne> getThat() {
return new AnotherClass<ClassOne>() {
...
};
}
}
有什么办法可以在plugin.xml中引用
AnotherClass<ClassOne>
?我已经尝试过类似
de.me.mypackage.ClassOne$AnotherClass
的方法,但这不起作用。我是否必须在自己的文件中声明该类才能引用它? 最佳答案
据我所知,它将有一个数字索引:
class Bla {
public static void main(String[] args) {
(new Runnable() {
public void run() {
System.out.println(getClass().getName()); // prints Bla$1
}
}).run();
}
}
编译后,您将获得:
$ ls *.class
Bla$1.class Bla.class
就是说,万一源文件被修改,您就不能依赖编号。
您是否可以改定义
static
内部类,例如:public class ClassOne {
public static class MyClass extends AnotherClass<ClassOne> {
public MyClass(/* arguments you would pass in getThat()? */) {
...
}
...
}
public static AnotherClass<ClassOne> getThat() {
return new MyClass(...);
}
}