在 Java 中,嵌套类可以是也可以static
不是。如果它们是static
,则它们不包含对包含实例的指针的引用(它们也不再称为内部类,它们称为嵌套类)。
static
在不需要该引用时忘记创建嵌套类可能会导致垃圾收集或逃逸分析出现问题。
是否也可以创建一个匿名内部类static
?还是编译器会自动解决这个问题(它可以,因为不能有任何子类)?
例如,如果我做一个匿名比较器,我几乎不需要对外部的引用:
Collections.sort(list, new Comparator<String>(){
int compare(String a, String b){
return a.toUpperCase().compareTo(b.toUpperCase());
}
}