考虑以下病态示例:
class Ideone {
static class ArrayList<T> {
ArrayList() {
System.out.println("!!");
}
}
static class java {
static class util {
static class ArrayList<T> {
ArrayList() {
System.out.println("Here");
}
}
}
}
public static void main(String[] args) {
new ArrayList<>();
new java.util.ArrayList<>();
// Can I refer to the "usual" java.util.ArrayList?
}
}
在构造函数中创建的两个实例属于嵌套类。
但是我怎么能提到java.util.ArrayList
我们在同一个班级里都知道和喜爱的东西呢?我们不能导入它,也不能使用完全限定的名称,因为将使用嵌套的类符号。
在这种情况下我们能做什么?(除了显而易见的 - 停止为嵌套类使用这种肆无忌惮的邪恶名称)。