설치&설정 관련/JAVA

[ERROR]inconvertible types 발생시 해결 방법

lahuman 2014. 1. 22. 17:06
728x90

다른 사람이 작업한 코드를 compile를 하던 중, inconvertible types 라는 오류가 발생 되었다.


대략적인 코드는 다음과 같다

//전역변수
List<T> info ;
//매소드에서 값 셋팅

//메소드1에서 사용
public void showMe(){
List<ShowMe> shows = (List<ShowMe>) info;
 for(ShowMe data : shows){
   ..처리
 }
}

//메소드2에서 사용
public void showYou(){
List<ShowYou> shows = (List<ShowMe>) info;
 for(ShowYou data : shows){
   ..처리
 }
}

이 오류에 대하여 구글링한 결과

다음과 같이 처리 하면 문제가 해결 된다.

//전역변수
List<T> info ;
//매소드에서 값 셋팅

//메소드1에서 사용
public void showMe(){
Object tmp = info;
List<ShowMe> shows = (List<ShowMe>) tmp;
 for(ShowMe data : shows){
   ..처리
 }
}

//메소드2에서 사용
public void showYou(){
Object tmp = info;
List<ShowYou> shows = (List<ShowMe>) tmp;
 for(ShowYou data : shows){
   ..처리
 }
}


이유를 알지 못하지만 개인적은 생각으로는 캐스팅 문제이거나, 전역변수에 대한 잘못된 접근으로 인한 runtime시 오류가 아닐까 한다.

웃긴건, eclipse에서는 오류가 안나는데 서버에서 complie시에만 오류가 발생한다.


참고 자료 : http://stackoverflow.com/questions/4829576/javac-error-inconvertible-types-with-generics

728x90