2013-11-22 6 views
1

프로젝트 P1에 A.B.C 패키지가 있고 그 안에 MyClass1 클래스가 있습니다. 이 클래스에는 기본 범위가 있습니다. 이 때문에 프로젝트 P1 내의 다른 패키지에서는 보이지 않으며 다른 프로젝트에서는 볼 수 없습니다.다른 프로젝트의 동일한 자바 패키지

그러나 A.B.C라는 이름의 패키지가있는 다른 프로젝트 P2를 만들면 MyClass1 클래스에 액세스 할 수 있습니다. 노출되지 않은 API를 사용하고자하는 사람이라면 누구나 같은 이름의 패키지를 만들고 액세스 할 수 있기 때문에 이것은 나쁘게 들립니다.

이것은 예상되는 동작입니까?

-

또 다른 관련 질문 : 프로젝트 레벨 범위에 대해 Java에 어떤 것이 있습니까?

+0

왜 이렇게할까요? –

+0

@LutzHorn 내 프로젝트에서 하나의 패키지는 API의 일부로 노출되는 파일이 거의 없습니다. 파일 수를 관리하기 위해 일부 파일을 다른 패키지로 옮겨 보았습니다. 그러나 그것은 이전에 공개되지 않은 클래스들을 공개하여 내 API를 희석시켜야합니다. Eclipse Juno를 사용 중입니다. – user673218

답변

5

예상 된 동작입니까?

예. 그래서 패키지 이름을 java.*으로 지정할 수 없습니다.

프로젝트 수준 범위는 무엇입니까?

번호

+0

'예. 따라서 패키지 이름을 java로 지정할 수 없습니다. *' 하지만 프로젝트 P2에서 A.B.C 패키지를 만들고 MyClass에 액세스 할 수 있습니다. 어쨌든, 나는 그것을 제한 할 수 있습니까? – user673218

+1

@ user673218 나는 그렇게 생각하지 않는다. 'java' 패키지 만이 제한됩니다. –

관련 문제