프로젝트 P1에 A.B.C 패키지가 있고 그 안에 MyClass1 클래스가 있습니다. 이 클래스에는 기본 범위가 있습니다. 이 때문에 프로젝트 P1 내의 다른 패키지에서는 보이지 않으며 다른 프로젝트에서는 볼 수 없습니다.다른 프로젝트의 동일한 자바 패키지
그러나 A.B.C라는 이름의 패키지가있는 다른 프로젝트 P2를 만들면 MyClass1 클래스에 액세스 할 수 있습니다. 노출되지 않은 API를 사용하고자하는 사람이라면 누구나 같은 이름의 패키지를 만들고 액세스 할 수 있기 때문에 이것은 나쁘게 들립니다.
이것은 예상되는 동작입니까?
-
또 다른 관련 질문 : 프로젝트 레벨 범위에 대해 Java에 어떤 것이 있습니까?
왜 이렇게할까요? –
@LutzHorn 내 프로젝트에서 하나의 패키지는 API의 일부로 노출되는 파일이 거의 없습니다. 파일 수를 관리하기 위해 일부 파일을 다른 패키지로 옮겨 보았습니다. 그러나 그것은 이전에 공개되지 않은 클래스들을 공개하여 내 API를 희석시켜야합니다. Eclipse Juno를 사용 중입니다. – user673218