2009-10-23 37 views
19

"Object" türünde düz bir nesne döndüren bir web hizmeti kullanıyorum. Hata ayıklama, bu nesnede bir çeşit Array olduğunu açıkça gösterir, bu yüzden bu "Nesneyi" bir Diziye (veya benzerine) nasıl ekleyebileceğimi merak ediyordum?Java: Diziye Döküm Nesne türü

Collection<String> arr = (Collection<String>) values; 
Vector<String> arr = (Vector<String>) values; 
ArrayList<String> arr = (ArrayList<String>) values; 

Ama hiçbir şey çalıştı:

Aşağıdaki çalıştı. Her zaman bir InvocationTargetException alıyorum.

Neyi yanlış yapıyorum?

Düzenleme:

Ne yazık ki, artık mevcut olduğundan Eclipse'nın debugger'ın çıkışını gösterdi görüntüye bağlantıyı kaldırmak zorunda kaldı. Lütfen cevaplarda neden bir görüntüden söz edilmediğini merak etmeyin.

+0

InvocationTargetException başka İstisna içerir. Ne diyor? –

+0

Eclipse ClassCastException diyor. – Jens

cevap

32

values nesneniz, String[] değerlerini içeren bir Object[] ürününüzdür.

String[] stringValues = (String[])values[0]; 
+0

Bu hile yaptı! Çok teşekkür ederim! – Jens

17

Elinizde ne var (hata ayıklama görüntüsüne göre), bir dizi dizisi içeren bir nesne dizisidir. Sen values türünü olmadığını göstermiştir

Object[] objects = (Object[]) values; 
String[] strings = (String[]) objects[0]; 

- Bu zaten Object[] ise o zaman sadece (String[])values[0] kullanabilirsiniz: Yani böyle bir şey gerekiyor. Hatta Object[] için alçıyla Tabii

yine bir açıklamada yapabileceğini, ama o çirkin:

String[] strings = (String[]) ((Object[])values)[0]; 
İlgili konular