什么鬼!局部内部类,

沁海棠 沁海棠 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public class Outer {
public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.getInner("Inner", "gz");
System.out.println(inner.getName());
}

public Inner getInner(final String name, String city) {
return new Inner() {
private String nameStr = name;

public String getName() {
return nameStr;
}
};
}
}

//注释后,编译时提示类Inner找不到
/* interface Inner {
String getName();
} */
同时在这个例子,留意外部类的方法的形参,当所在的方法的形参需要被内部类里面使用时,该形参必须为final。

不懂什么意思,编译报错,类找不到然后在加了个Inner类
class Inner{
private String name;
private String city;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}

}

删掉final修饰不报错啊

匿名内部类传递参数的时候,若该形参在内部类中需要被使用,那么该形参必须要为final。也就是说:当所在的方法的形参需要被内部类里面使用时,该形参必须为final。
啥意思。给个例子。
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
沁海棠
Java SE 62,621 成员 307,251 内容