티스토리 뷰

혹시 다음과 같은 오류 메시지를 보신 적이 있으신가요? 

type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object


Eclipse에서는 이런 메시지가 나타나지 않지만 Ant Build로 서버에서 컴파일하려고 하면 나타나는 경우가 있습니다 

에러 메시지를 살펴보면 매개변수의 타입이 정의되지 않았다는 것 같은데요. 

int, java.lang.Object와  같이 명확하게 사용하라는 것 같습니다. 


해당 오류를 찾아보니 자바 컴파일러의 버그 라고 하네요. 

http://bugs.sun.com/view_bug.do;jsessionid=b25465a8a4d3cffffffffdd0a31aeee673b4?bug_id=6973465


위 글을 참고하면 우회할 수 있는 해결책(workaround)을 제시해 주고 있는데요. 

Workaround is to cast return value to appropriate wrapper type before performing assignment:


바로 Cast 연산자를 통해서 리턴 타입을 다음과 같이 명시하면 된다고 합니다. 

int i2 = (Integer)getValue();

float f2 = (Float)getValue();


테스트 해보니 잘 되네요. 

이클립스에서는 컴파일이 오류 없이 되다가 서버에 Ant Build로 적용할 때 나타날 수 있는 오류이니 알아두시면 도움이 될 것 같습니다. 


댓글
댓글쓰기 폼