2016-07-28 13 views
-2

JPAを使用してデータベースから行を読み取っています。これは、3つのint値を持つObjectを提供します。オブジェクトをint型配列にキャストできません

Eclipse debugger

私は今ClassCastExceptionを投げると言うint[]配列、このオブジェクトをキャストしようとしています:

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

は、これは私のコードです:

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; 
} 

私はまた、 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の投稿に従うことができます。 []整数にキャストするには、1つのライナーで、int型のため[]あなたは `私も整数[]`を試したループ

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() 

} 
関連する問題