public SampleBehaviour otherway(final String st) {
return new SampleBehaviour() {
private String str = st;
@Override
public void print() {
System.out.println("val:"+val);
}
};
}
SampleBehaviour
是一个界面。
实现接口的类必须定义方法行为,是否在接口中使用了某些变量?
为什么方法参数必须是最终的?我没有得到这种用法的实时应用程序?这背后真实的是什么?
如果它有用,为什么C ++不会有这样的东西?
答案 0 :(得分:0)
来自The Java Language Specification,第8.1.3节:
使用但未在内部类中声明的任何局部变量,形式参数或异常参数必须声明为final。
维基百科说,内部类需要保留自己的变量副本,因为它可以在外部类超出范围后继续存在;为了防止具有相同的变量名称引用两个不同的位置,他们强制将变量固定到位。