2017-12-18 2 views
-1

나는 원시 래퍼 클래스를 가지고 다음과 같은 코드가 있습니다 사용하여 정수로 짧은 캐스트 "호환되지 않는 유형 : 짧은 정수로 변환 할 수 없습니다"하고 나는를 얻을 수 컴파일 오류.자바는 괄호 ​​

// setValue expects Integer (class) 
// getValue returns Short (class) 
intLength.setValue((shortLength.getValue())); 

오류가 사라지고 코드를 컴파일하고 작품 : 나는 괄호의 추가 세트를 추가 그러나 경우

. 누구든지 여분의 괄호가 무엇을하고 있는지/왜 괄호가 캐스팅을하는지 말해 줄 수 있습니까? 감사합니다. .

+0

덕분에 제공하십시오 [A, 최소를 완료하고 검증 가능한 예 (https://stackoverflow.com/help/mcve) –

+2

재현 할 수 없습니다. 컴파일은 항상 예상대로 실패합니다. 여분의 괄호를 추가해도 차이는 없습니다. Eclipse 컴파일러, JDK 1.8.0_91 컴파일러, JDK 1.8.0_151 컴파일러 및 JDK 9.0.1 컴파일러로 테스트되었습니다. – Andreas

+0

글쎄,'getValue()'가 short를 반환하고'setValue (int)'가 int를 기대한다고 말하는데 컴파일 타임 오류가 없어야한다. 왜냐하면 short가 내재적으로 int에 upcasted되기 때문이다 –

답변

1

Andreas가 의견에서 말했듯이; NetBeans 문제인데 NetBeans가 Java Language Specificate, Parenthesized Expressions을 확인한 경우 유형을 전혀 변경하지 않기 때문에 NetBeans가 항상 Java 사양을 따르는 것은 아닙니다.

javac 및 java 명령을 사용하여 코드를 수동으로 확인할 수 있으며 두 경우 모두 컴파일 오류가 표시됩니다. 안드레아스