Ошибка при конвертации данных из Object [ ] к Double[ ]

149
16 марта 2019, 06:50

Выскакивает ошибка при конвертации данных из Object [ ] к Double[ ]:

Exception in thread "main" java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method)

static Object [] riznicyaKupivli = new Object[28];
Double [] vsiRiznici = new Double[riznicyaKupivli.length];
    System.arraycopy(riznicyaKupivli, 0, vsiRiznici, 0, riznicyaKupivli.length);
  System.out.println(Arrays.toString(vsiRiznici));

Данные которые хранятся в Object []:

28.070
31.727
0.376
35.174
27.117
7.063
0.243
20.200
19.700
4.160
3.290
3.020
1.193
0.092
28,27
32,07
7,43
0,43
36,16
28,21
19,87
4,30
21,50
3,37
0,10
1,24
3,08
0,25

Это я добавляю елементы из двух таблиц JTable в массив обьектов

 for(int i = 0; i<14; i++){
    riznicyaKupivli[i] =  dtm.getValueAt(i, 1);
    }
    for(int j = 14; j<riznicyaKupivli.length;j++){
        riznicyaKupivli[j]= dtm2.getValueAt(k, 1);
        k++;
    }

Подскажите как исправить?

Answer 1

Значения возвращаемые методом getValueAt() в JTable почти всегда являются строками, а так как метод arraycopy не производит никаких конвертаций, вы получаете ArrayStoreException при попытке заполнить массив Double-ов строками.

Ниже я привел пример как нужно в вашем случае сделать:

Object [] objarr = new Object[1]; // В вашем случае 'riznicyaKupivli'
Double [] darr = new Double[1]; // 'vsiRiznici'
DefaultTableModel dtm = (DefaultTableModel) table.getModel(); // Получаем модель JTable
objarr[0] = Double.parseDouble((String)dtm.getValueAt(0, 0)); // И теперь мы
            // сначала приводим значение из таблицы (Object) в строке (String),
            // а затем в ней парсим (Double), цикл for я опустил для наглядности
System.arraycopy(objarr, 0, darr, 0, objarr.length); // Копируем массив
System.out.println(Arrays.toString(darr)); // Получаем значения в массиве 'darr'

Только удостоверьтесь что в таблице и правда числа, иначе будет брошено исключение NumberFormatException.

READ ALSO
Пересылка сообщений в Telegram api

Пересылка сообщений в Telegram api

Всем привет, разрабатываю бота по опросам телеграмм javaСоздание опроса происходит в приватном общении с ботом

148
Ubuntu не находит пакеты

Ubuntu не находит пакеты

У меня на виртуальной машине стоит Ubuntu версии 1804

177
Значение оси в GraphView

Значение оси в GraphView

Столкнулся со следующей проблемой: мне необходимо построить графикОдна ось этого графика - обычное число

205
Почему добавляются слэшы в теле запроса ?

Почему добавляются слэшы в теле запроса ?

Нужно получить тело для запроса такого вида

175