访问匿名类的构造函数

2023-12-13

假设我有一个具体的类 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(使用前将#替换为@)

访问匿名类的构造函数 的相关文章

随机推荐