2016-07-24 2 views
-5

이클립스는 로컬 변수 randInt가 초기화되지 않았다고 경고했다. 그래서 첫 번째 줄에 추가 : 경고 멀리 갔다"@SuppressWarnings"의 이상한 결과

@SuppressWarnings("all") 
return randInt; 

을,하지만 난 첫 번째 줄에 두 개의 새로운 오류를 받고 있어요 : 구문 오류 : EnumHeaderName을 완료하기 위해 "열거 식별자"를 삽입하고, 구문 오류 : "EnumBody"를 삽입하여 BlockStatement를 완료하십시오.

지구상의 무엇입니까? @SuppressWarnings에 대한 정보를 찾는 것이 놀랍도록 어렵습니다. "all"을 사용하는 것보다이 특정 경고를 없애는 더 정확한 방법이 있습니까?

최소한의 완전하고 검증 예 :

public class SuppressTest { 
    public int cut() { 
     int randInt = 0; 
     @SuppressWarnings("all") 
     return randInt; 
    } 
} 
+2

[mcve]를 게시 할 수 있습니까? – Tunaki

+0

잠깐,이 메서드는 부울 인스턴스 변수 "cut"(@SuppressWarnings 바로 전에 true로 설정 됨)과 동일한 이름을가집니다. 자바에서 합법적입니까? 그게 문제일까요? 코드가 정상적으로 실행됩니다. – user3238181

답변

1

당신은 return 문에 @SuppresWarnings을 삽입 할 수 없습니다. Java 8에서는 클래스, 메소드/생성자, 필드, 매개 변수 및 (Java 8의 새로운 기능) 로컬 변수에만 주석을 달 수 있습니다.

그래서 귀하의 경우 java는 귀하가 작성한 것을 구문 분석 할 수 없습니다. 메서드 수준에서 @SuppressWarnings을 이동하십시오.

+0

감사합니다. 제 2 질문 : "변수가 초기화되지 않았습니다"라는 메시지를 대상으로하는 특정 유형의 경고가 있습니까? – user3238181