假设我有一个具体的类 Class1,并且我正在用它创建一个匿名类。
Object a = new Class1(){
void someNewMethod(){
}
};
现在有什么方法可以重载这个匿名类的构造函数。如下图所示
Object a = new Class1(){
void someNewMethod(){
}
public XXXXXXXX(int a){
super();
System.out.println(a);
}
};
用 xxxxxxxx 的东西来命名构造函数?
来自Java语言规范,第 15.9.5.1 节:
匿名类不能有
显式声明的构造函数。
Sorry :(
编辑:作为替代方案,您可以创建一些最终局部变量,和/或在匿名类中包含实例初始值设定项。例如:
public class Test {
public static void main(String[] args) throws Exception {
final int fakeConstructorArg = 10;
Object a = new Object() {
{
System.out.println("arg = " + fakeConstructorArg);
}
};
}
}
这很糟糕,但它可能会对你有所帮助。或者,使用适当的嵌套类:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)