2012-05-02 6 views
5

주어진 다음의 프로그램 :자바 글로벌 네임 스페이스에 액세스

class A { 
    static int java = 42; 
    static int System = -1; 

    public static void main(String[] args) { 
     java.lang.System.out.println("Foo"); 
    } 
} 

이 컴파일은 나에게 "INT는 역 참조 할 수 없습니다"라는 없다는 오류를 제공합니다. 그 이유는 분명합니다.하지만 이런 상황을 어떻게 처리해야합니까? 특히 사용자 코드가 생성 된 코드와 얽혀 있는지 알 수없는 코드 생성 시나리오와 관련이 있습니다.

C#에서는 "java.lang"전에 "global ::"네임 스페이스 지정자를 사용하지만 자바에서는 무엇을합니까?

+0

그건 내가 생각해 본 적이 한 번도 없어! – adarshr

답변

3

Java의 일반적인 해결책이 없습니다. 우리가 함께 사는 방법은

  1. 존중 명명 패키지/필드 이름에서 클래스 이름을 구분 규칙, 및 코드를 생성 할 때
  2. 는 클래스 이름으로 정적 VAR 자격을하는 것입니다.
+0

어떻게 도울 수 있습니까? Eyvind는 그의 예제에서 일반적인 명명 규칙을 따르고 필드가 정적인지 여부에 상관없이 java 패키지에 대한 액세스보다 우선 순위가 있습니다. – jarnbjo

+0

내가 말했듯이 "Java의 일반적인 해결책이 없습니다." –

+0

그게 내가 두려웠 던 것입니다. 실용주의, 여기와! – Eyvind

관련 문제