我的教授在关于范围和生命周期的练习中提供了这段代码:
class AnonymousInnerClassInMethod {
public static void main(String[] args) {
int local = 1;
Comparable compare = new Comparable () {
public int compareTo(Object value) {
return (Integer)value - local;
}
};
System.out.println(compare.compareTo(5));
}
}
抛开local
无法访问的事实(这就是练习)和 Comparable 没有参数化(疏忽?)......我从未见过这个结构,甚至不知道它是可能的。
- 这样做是为了避免为整个班级扩展 Comparable 吗?
- 如果是这样,为什么?它更容易/可读/其他吗?
- 可以为任何接口编写这种类型的匿名类吗?