Java 当名称相同时,从内部类匿名构造函数访问父方法参数
我有一个方法,在这个方法中,我通过匿名内部类创建另一个对象的实例,并在它的匿名构造函数中进行初始化,在构造函数中,如果我想访问父对象,如果它是一个类,我可以通过类名来访问它。这等等,但是在这种情况下,我如何访问父实例,它是一个有名称的方法? 这里是我面临的问题的一个例子,我必须重命名方法或字段,以防父类和innerclass具有相同的名称Java 当名称相同时,从内部类匿名构造函数访问父方法参数,java,Java,我有一个方法,在这个方法中,我通过匿名内部类创建另一个对象的实例,并在它的匿名构造函数中进行初始化,在构造函数中,如果我想访问父对象,如果它是一个类,我可以通过类名来访问它。这等等,但是在这种情况下,我如何访问父实例,它是一个有名称的方法? 这里是我面临的问题的一个例子,我必须重命名方法或字段,以防父类和innerclass具有相同的名称 public static void test(final String param1){ new InnerClass(){ {
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);
}
}
只需将参数传递给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);
}
}
这太可怕了。太可怕了。即使你能解决这个问题,你为什么要这么做?为什么不把param1带进ctor呢?否则重命名方法参数。但是在匿名类上使用实例初始化器来破解内部状态是很讨厌的。有没有办法访问父类,在这种情况下,哪个是方法?没有,它不能访问调用方法中的局部变量。只需将所需的值作为构造函数参数传入即可。