2015-03-13 1 views
-2

Я написал ниже код. Он получает сообщение:[D не может быть отнесено к java.lang.Double

Исключения в нити "основной" java.lang.ClassCastException: [D не может быть приведен к java.lang.Double

double[] xyz = {1, 11, 111, 2, 22, 222}; 
ArrayList array = new ArrayList(); 

array.add(xyz); 

double[] vals = new double[array.size()]; 

vals[0] = (double) array.get(0); 
vals[1] = (double) array.get(1); 
vals[2] = (double) array.get(2); 

Я также поиску и увидеть некоторые пост в переполнении стека, но они не очень меня чувствуют. Что мне делать?

+2

возможным дублировать [Что является сырым типом и почему мы не должны его использовать?) (http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use -it) –

+4

Это не имеет смысла, 'array.add (xyz);'. Крайне важно показать нам *** точно, что вы добавляете к этому ArrayList. Вы должны использовать 'ArrayList ' независимо. –

+2

Это не 'D', а' [D', т.е. массив 'double'. – fge

ответ

6

Если вы хотите добавить массив значений double к ArrayList, сделайте следующее:

Double[] xyz = {...}; 
ArrayList<Double> array = new ArrayList<>(); // note, use a generic list 
array.addAll(Arrays.asList(xyz)); 

List не может хранить примитивы, так что вы должны хранить Double значения не double. Если у вас есть существующая переменная double[], вы можете использовать ее ArrayUtils.toObject().

+0

Танков много. Он решил. –

3

На самом деле ваша проблема заключается в том, что вы пытаетесь использовать тип «xyz», который не кажется двойным или Wrapper связанным (двойным), в двойном.

Так как java не может преобразовать тип «xyz» в двойной, то это throw. ClassCastException. Вы должны попытаться добавить п удвоится в массив, как, что (или даже в цикле):

ArrayList<Double> myListOfDouble = new ArrayList(); 
myListOfDouble.add(1.0); 

, а затем использовать для цикла, чтобы заполнить свои двойные [] Vals так:

for(int i = 0; i < myListOfDouble.size(); i++) 
    vals[i] = myListOfDouble.get(i); 

 Смежные вопросы

  • Нет связанных вопросов^_^