访问匿名类的构造函数

问题:

说我有一个具体的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节:

匿名类不能有明确声明的构造函数。

对不起:(
编辑:作为替代,您可以创建一些最终的局部变量,和/或在匿名类中包含实例初始值。例如:

public class Test {
    public static void main(String[] args) throws Exception {
        final int fakeConstructorArg = 10;

        Object a = new Object() {
            {
                System.out.println("arg = " + fakeConstructorArg);
            }
        };
    }
}

这是grotty,但它可能只是帮助你。或者,使用适当的嵌套类:)

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Accessing constructor of an anonymous class

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 + 5 =