2011-10-14 5 views
2

최대 절전 캐스케이드 주석 값 "org.hibernate"는 "org"변수와 충돌합니다. "org"는 패키지 이름의 일부가 아니라 변수 이름으로 사용됩니다. 오류가 발생합니다 :이 주석에 대한 Java 컴파일러 오류가 있습니까?

.java:[14,16] cannot find symbol 
[ERROR] symbol : variable hibernate 
[ERROR] location: class java.lang.Object 
[ERROR] Foo.java:[14,50] an enum annotation value must be an enum constant 

일반적인 Java 컴파일러 버그 인 것 같습니다. 첫 번째 패키지 요소와 동일한 개체 변수를 정의 할 때 재현 가능해야합니다.

+0

당신이 그것을 재현 할 수 있다면, 짧은하지만 완전한 프로그램에서 그렇게하는 것이 좋을 것입니다 - 그리고 여기에 Hibernate 의존성이있는 대신에 게시하십시오 :) –

+0

제가 제공 한 샘플 코드는 문제를 보여주기 위해 커스텀 클래스를 정의하는 것보다 간단합니다. 커스텀 클래스를 속성 값으로 취하는 커스텀 애노테이션을 정의해야한다. :) 그리고 그 케이스를 표현하기위한 몇 가지 클래스가 필요하다. – Benjamin

답변

0

This은 Java가 이름의 의미를 결정하는 방법에 대한 정의입니다.

+0

주석의 속성 값으로 전체 클래스 이름을 사용하는 경우에만 발생합니다. 동일한 클래스 이름을 사용하여 Java 변수를 정의하면 작동합니다. – Benjamin

관련 문제