코드에서 ClassCastException을 수신했습니다. 처음에는 refreshDetailVOTable 메서드가 Set 만 가져올 것이므로 Objective는 Set을 List로 변환하는 것이 었습니다. 이 문제는 Set to List를 변환 할 때 발생할 수 있습니다. refreshDetailVOTable이 잘못된 List를 취하여 ClassCastException을 수신하는 이유입니다.이벤트 발송 중 예외가 발생했습니다. JRE 1.4 환경의 java.lang.ClassCastException
나는 모든 원시 유형을 사용하고있다 : 조사시
, 그것은 것을 발견했다. 대신 제네릭을 사용해야합니다. 컴파일시 이러한 종류의 오류를 찾는 데 도움이됩니다. 이 방법은 매개 변수 목록 detailIRsToDelete을 받고
나는 반복자를 가지고 그래서 같은 요소를 반복되는 : 따라서 ClassCastException를 받고, 실수로 detailIRsToDelete로의 IdentifiableReference 아닌 다른 뭔가를 넣어 수도
for (Iterator iDetails = detailIRsToDelete.iterator(); iDetails.hasNext();) {
IdentifiableReference detailIR = (IdentifiableReference) iDetails.next();
루프 내의 할당 문에서.
List <IdentifiableReference> detailIRsToDelete
이 목록에 물건을 넣는 행위는 컴파일러에 의해 확인 될 것이고, 오류가 잘못된 개체가 있던 지점에서 발생한다 :로
목록 매개 변수
는 선언해야 컴파일 된 시간에 나중에 런타임에 런타임에 대신 추가됩니다.문제 :이 다음 클래스 캐스트 예외를 해결해야하지만, 이것은 우리가 업그레이드에서 JRE 1.4 제쳐에 대한 해결 방법이 있나요 1.4
입니다 현재 JRE에 적용 할 수 없습니다?
을 캐스팅하기 전에
instanceof
를 사용할 수 있습니다. 적어도 오류가있는 곳을 알려줄 것입니다. 그러나 1.4에서 업그레이드해야합니다. 당신은 약간의 시간을해야 할 것이며 적어도 여기에는 그럴듯한 동기가 있습니다. – EJP