В Java - “Не могут быть импортированы статические члены пакета по умолчанию” - кто-то может объяснить этот оператор?

В Java - "Не могут быть импортированы статические члены пакета по умолчанию" - кто-то может объяснить этот оператор? Это было бы лучше если с примером. Я не уверен, имеет ли это действительно простой ответ, но тогда я пытался понять, но не мог бы понять это.

12
задан MohamedSanaulla 26 December 2009 в 18:26
поделиться

1 ответ

-

Это означает, что если класс определен в пакете по умолчанию (что означает, что он не имеет любого определения пакета), то вы не можете импортировать это Статические методы в другом классе. Таким образом, следующий код не будет работать:

// 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 был разработан для ведения. У по умолчанию пакет просто имеет неожиданное поведение, и это одна из причин, почему программисты рекомендуются никогда не использовали пакет по умолчанию.

20
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: