В Java - "Не могут быть импортированы статические члены пакета по умолчанию" - кто-то может объяснить этот оператор? Это было бы лучше если с примером. Я не уверен, имеет ли это действительно простой ответ, но тогда я пытался понять, но не мог бы понять это.
Это означает, что если класс определен в пакете по умолчанию (что означает, что он не имеет любого определения пакета), то вы не можете импортировать это Статические методы в другом классе. Таким образом, следующий код не будет работать:
// Example1.java
public class Example1 {
public static void example1() {
System.out.println("Example1");
}
}
// Example2.java
import static Example1.*; // THIS IMPORT FAILS
public class Example2 {
public static void main(String... args) {
example1();
}
}
Импорт не удается, поскольку вы не можете импортировать статические методы из класса, в котором в пакете по умолчанию, который имеет место для примера1. На самом деле, вы даже не можете использовать нестатический импорт.
Этот отчет об ошибке имеет некоторое обсуждение о том, почему Java действует таким образом, и в конечном итоге было закрыто как «не дефект» - это так, как Java был разработан для ведения. У по умолчанию пакет просто имеет неожиданное поведение, и это одна из причин, почему программисты рекомендуются никогда не использовали пакет по умолчанию.