问题描述
- Thinking in Java关于学习匿名内部类遇到的问题
- // An anonymous inner class that performs initialization.
//A briefer version of Parcel5.java.public interface Destination{ String readLabel();}
public class Parcel9 {
// Argument must be final to use inside anonymous inner class:
public Destination destiantion(String dest){
return new Destination(){
private String label = dest;
@Override
public String readLabel() { return label; }@Override public String toString(){ return label; } };}public static void main(String[] args) { // TODO Auto-generated method stub Parcel9 p = new Parcel9(); Destination d = p.destiantion(""Thinking in Java""); System.out.println(d.toString());}
}
书上说,如果定义一个匿名内部类,并希望它使用一个在其外部定义的对象,那么编译器将会要求其参数是final的,就像你在destination()的参数中看到的那样。如果你忘记了,将会得到一个编译时错误信息。
问题是我删除了final也没看到什么影响
时间: 2024-11-10 00:38:01