当名称相同时,从内部类匿名构造函数访问父方法参数

时间:2014-07-16 14:18:04

标签: java

我有一个方法,在内部我通过匿名内部类创建另一个对象的实例并在其匿名构造函数中进行一些初始化,在构造函数内部如果我想访问父对象,如果它是一个类我可以通过ClassName来实现它.this等但在这种情况下如何访问父实例,这是一个带有名称的方法? 下面是我遇到的问题的一个示例,如果父类和内部类具有相同的名称,我必须重命名方法或字段。

public static void test(final String param1){
    new InnerClass(){
        {
            this.param1=param1;
        }
    }.doSomething();;
}

public static class InnerClass {
    String param1;
    void doSomething(){
        System.out.println("param1 "+param1);
    }
}

1 个答案:

答案 0 :(得分:0)

只需将参数传递给InnerClass构造函数,而不是使用匿名子类:

public static void test(final String param1){
    new InnerClass(param1).doSomething();
}

public static class InnerClass {
    String param1;

    public InnerClass(String param1) {
        this.param1 = param1;
    }

    void doSomething(){
        System.out.println("param1 "+param1);
    }
}