假设我有一个具体的类 Class1,我正在用它创建一个匿名类。
Object a = new Class1(){
void someNewMethod(){
}
};
现在有什么方法可以重载这个匿名类的构造函数。如下图所示
Object a = new Class1(){
void someNewMethod(){
}
public XXXXXXXX(int a){
super();
System.out.println(a);
}
};
用 xxxxxxxx 处的东西来命名构造函数?
最佳答案
来自 Java Language Specification ,第 15.9.5.1 节:
An anonymous class cannot have an explicitly declared constructor.
对不起:(
编辑:作为替代方案,您可以创建一些最终局部变量,和/或在匿名类中包含实例初始化程序。例如:
public class Test {
public static void main(String[] args) throws Exception {
final int fakeConstructorArg = 10;
Object a = new Object() {
{
System.out.println("arg = " + fakeConstructorArg);
}
};
}
}
这很糟糕,但它可能会对你有所帮助。或者,使用适当的嵌套类:)
关于java - 访问匿名类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362424/