2016-07-28 3 views
-2

JPA를 사용하여 데이터베이스에서 한 행을 읽습니다.이 개체는 3 개의 int 값을 가진 Object를 제공합니다. 또한int 배열에 개체 캐스팅이 작동하지 않습니다.

try { 
    utx.begin(); 
} catch (NotSupportedException e) { 
    e.printStackTrace(); 
} catch (SystemException e) { 
    e.printStackTrace(); 
} 
Query q = em.createNativeQuery("SELECT * FROM mytable"); 
List<Object> objectList = q.getResultList(); 

for (int i = 0; i < objectList.size(); i++) { 
    Object object = objectList.get(i); 
    int[] array = (int[]) object; 
} 

내가 :

Ljava.lang.Object; cannot be cast to [I 

이 내 코드입니다 :

Eclipse debugger

나는 지금 ClassCastException을 던져라는 int[] 배열이 객체를 캐스팅하려고 Integer[]으로 시도했습니다. 같은 예외.

누군가가 문제를보고 있습니까? 어떻게 캐스팅 할 수 있습니까?

+0

가'나는 또한'정수 []와 노력 루프가 필요합니다 - 당신은'시도 않았다 INT [] 배열 = (정수 []) 객체 또는'Integer [] array = (Integer []) 객체; 후자 만 작동해야합니다. – Eran

+0

목록을 객체 [] (목록 )로 전송하십시오. –

+4

이 게시물에 대한 질문에 대한 답변이 있어야합니다. http://stackoverflow.com/questions/1115230/casting-object-array-to-integer-array-error – anaBad

답변

0

마찬가지로 int []와 Integer []에는 차이가 있습니다. @anabad에서 언급했듯이 다른 SO 게시물을 따를 수 있습니다. 정수로 캐스팅하려면 [] 한 라이너와 인터넷 용 [] 당신은

Object[] objectArray = new Object[] { new Integer("32"), new Integer("11"), new Integer("0") }; 
int[] integers = new int[objectArray.length]; 

Integer[] objectIntArray = Arrays.copyOf(objectArray, objectArray.length,Integer[].class); 


for (int i = 0; i < objectArray.length; i++) { 
    integers[i] = (int) objectArray[i];// works from java 7 , else 
             // use 
             // Integer.parseInt(objectArray[i].toString() 

} 
관련 문제