В буквальном смысле, нет, в Java нет настоящего "глобального". Но вам не нужно импортировать, особенно не import .*
.
Приведенный ниже код иллюстрирует, что импорт не требуется , но это только часть ответа.
package org.example.pkg.foo;
public class Foo {
public static void doSomething();
}
package org.example.pkg.bar;
public class Bar {
public void bar() {
org.example.pkg.foo.Foo.doSomething();
}
}
В Java типы, такие как классы и интерфейсы, определяются в терминах ClassLoader
, который их загружал. Вы можете иметь несколько загрузчиков классов, что подразумевает возможность загрузки нескольких копий одного и того же класса. Очевидным расширением этого является то, что можно загрузить несколько классов с одним и тем же квалифицированным именем (package + class), и нет никакого врожденного требования, что они связаны.
OSGi является примером этого, где каждый комплект имеет свой собственный загрузчик классов, и в результате вы можете иметь одновременно загруженные несколько версий одного и того же класса.
Как это связано с вопросом? Что ж, без точного определения класса, на который вы хотите сослаться, невозможно точно определить метод или элемент, на который вы хотите сослаться. Это делает импорт или ссылка на FQN.