2014-09-15 3 views
2

이상하게 보일 수 있지만 주석의 텍스트로 인해 코드가 컴파일되지 않습니다. (이것은 디 컴파일 된 코드이며,이 normaly처럼 포맷하지 않습니다.)주석 내부의 코드로 인해 컴파일 오류가 발생합니다 - 이유가 무엇입니까?

코멘트 (파일의 맨 끝은, 디 컴파일러에 의해 자동으로 추가) :

/* Location:   C:\Pokechu22\TestServer\plugins\uSkyBlock.jar 

* Qualified Name:  us.talabrek.ultimateskyblock.uSkyBlock 

* JD-Core Version: 0.7.0.1 

*/ 

여기가 일식의 모습의 이미지입니다. 여기 Image of the oddness

정확한 오류 메시지입니다 (이들은 유일한 오류 메시지, 그리고 하나 개의 코멘트에 모두) :

 
    Description         Resource  Path             Location  Type 
    Core cannot be resolved to a type   uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2009  Java Problem 
    Invalid unicode        uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2005  Java Problem 
    Qualified cannot be resolved to a type  uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2007  Java Problem 

plugins의 오류에 대해 불평 일식입니다 오타 : The word 'plugins' is not correctly spelled.

이것은 쉽게 해결할 수 있습니다. 나는 그 주석을 삭제할 수 있습니다 만, 왜 이런 일이 벌어 질까요? 주석을 완전히 무시하도록 코드를 작성하면 안됩니까?


편집 : 추가 참고 사항으로 모든 오류는 주석 블록 내부에 있으며 주석 블록을 제거하면 코드를 컴파일 할 수 있습니다. 여기는 질문이 아닙니다. 제 질문은 자바가 여기에있는 주석의 텍스트에 대해 왜 신경을 쓰나요?

답변

5

자신을 다시 시도 유니 코드 문자의 접두사입니다. 여기서는 주석의 파일 이름의 일부입니다. 이 오류를 제거하는 유일한 방법은 \u 부분을 제거하는 것입니다 (예 : \u을 javadoc에 표시하려는 경우) 또는 백 슬래시 문자 (\\u)를 이스케이프 처리하십시오.

참고가 이클립스의 알려진 "버그"라고, 참조 : 제외

: 자바 코멘트 유니 코드 문자를 포함 할 수 Bug 6677Bug 10753

이 문제는, 비록 자바 사양과 일치 주석, 식별자 및 문자 내용과 문자열 리터럴의 경우 프로그램의 모든 입력 요소는 ASCII 문자 (또는 ASCII 문자가되는 유니 코드 이스케이프)로만 구성됩니다. 하나의 코멘트를 제거 할 때 코드를 컴파일 - 문제가 아니다

§3.1

+0

글쎄요. 그것은 성가신 행동이지만. – Pokechu22

+0

적어도 알려진 버그입니다. (신경 쓰지는 않지만).그래서 나는 이런 문제가있는 유일한 사람이 아닙니다. – Pokechu22

2

이 일식으로 읽을 수없는 유니 코드 문자가 코드의 복사 붙여 넣기 블록은 아마 그것을 삭제하고 문제는 문자열 \u는 이클립스에 의해 해석된다는 것이다 그것을

+0

. 나는 그것을 컴파일 할 수있다. 나는 자바가 왜 그 주석의 코드에 신경을 쓰고 세 가지 오류를 일으키는 지 혼란 스럽다. – Pokechu22

+0

Qualified와 Core에 관련된 두 가지 오류는 코드와 함께 코드를 성공적으로 컴파일 할 수 있다는 경고입니다. 주석 내부에서도 일식으로 읽을 수없는 잘못된 유니 코드 만 문제가 발생합니다. –

관련 문제