나는 처음에는 자바 사람이 아니지만 표면에 나타나는 것이 수입품 수입 방식과 모순되는 것을 보았습니다. 수입품 구현
당신이 파일이이 파일에 당신이 당신의 주요 기능을 말해봐 당신은 또한 푸 푸 또한 패키지에 존재 지금 다른 구현을 클래스 을 정의했습니다. 귀하의 기능에서 두 버전을 모두 사용하고자한다고 가정하십시오.Foo을 패키지에서 가져올 수 없습니다. 예 : import mypackage.Foo;
이로 인해 파일에서 로컬로 정의 된 클래스와 충돌하게되므로 컴파일 타임에 오류가 발생합니다.
무엇을 할 수 있습니까?는 전체 패키지를 가져옵니다. 즉, import mypackage. *;
이 작동하며 로컬 푸의 사용됩니다 간단한 이름을 사용하여 정규화 된 이름을 사용하여 푸에 액세스 할 수 있습니다. 내가보기에 불일치가있는 것은 전자가 오류를 생성하는 동안 (클래스를 가져 왔고 가져 오기의 유일한 목적은 완전한 이름과 달리 단순한 이름을 사용할 수 있다는 것입니다) 후자는 경고.
두 경우 모두 경고가 발생한다고 생각 했겠죠. 예를 들어, 두 곳에서 정의 된대로 잘못된 클래스를 사용하거나 간단한 이름을 사용하면 중복되는 import 문이 로컬에서 정의 된 클래스로 해결됩니다. 수입 한 것이 아닙니다.
제 질문은 다음과 같습니다.이 방법으로 구현 된 근본적인 이유가 있습니까?
예. 이상한 사례입니다. 이해합니다.
작은 노트 : 가져 오기 문은 패키지 이름을 입력하지 않아도 사용되며 다른 작업은 수행하지 않습니다. 바로 가기입니다. 항상 완전한 이름을 사용하면 가져 오기가 전혀 필요하지 않습니다. –
필자는 패키지가 존재하는 이유를 이해합니다. 가져온 패키지의 클래스를 참조 할 수 있고 경고가 전혀없는 것처럼 보입니다. 그 이름을 가진 클래스가 로컬에 정의되어 있는지 여부에 관계없이 오류가 있습니다. 로컬로 정의 된 클래스와 같은 이름의 클래스를 명시 적으로 가져올 때. 두 경우 모두 import 문은 해당 클래스에 대해 중복되지만 아직 수익률과 오류가 하나가 아닌 다른 것은 수행하지 않습니다. – Stinomus