Вы больше не можете напрямую ссылаться на java.util.ArrayList
, если вы сделали 2 вещи, которые вы сделали:
- Скрыть простое имя
ArrayList
со статическим вложенным классом в области видимости. - Скрыть полностью определенное имя
java.util.ArrayList
с классом ArrayList
, вложенным в класс util
, вложенным во вложенный класс java
.
Вы даже не можете "разбить"«импорт в попытке использовать« частично квалифицированный »импорт.
import java.*;
...
// This doesn't work!
new util.ArrayList<>();
Вы можете import java.*;
, но это бесполезно;классы java
не определены напрямую.
Однако вы можете косвенно ссылаться на класс java.util.ArrayList
, поскольку он не final
.Вне области действия класса Ideone
объявите подкласс с другим именем.
class AnArrayList<T> extends java.util.ArrayList<T> {}
Затем вы можете обратиться к этому классу и программе к интерфейсу:
List<Integer> al = new AnArrayList<>(); // won't print !! or Here