ЭТО НЕ ДУБЛИКАТ. Похоже, что это на первый взгляд, но решение других проблем не применяется.Java Map.put() метать нулевой указатель
Когда я запускаю следующий метод под Java 1.7, я получаю исключение нулевого указателя на
normalOutCurrVals.put(new Double(x), new Byte(i));
Я прочитал документацию и ответы здесь для тесно связанных задач, но до сих пор я и мои команда в тупике. Есть ли что-то очевидное, что нам не хватает?
Мы просто хотим помещать сопоставления из двойных значений (которые появляются в нашем программном интерфейсе) к своим байтовым аналогам для хранения в памяти имитируемого устройства.
Вот Importants декларации:
public final Map<Double, Byte> normalOutCurrVals = mapNormalOutCurrVals();
public final Map<Double, Byte> magnetOutCurrVals = mapMagnetOutCurrVals();
public final Map<Integer, Byte> freqVals = mapFreqVals();
public final Map<String, Byte> onTimeVals = mapOnTimeVals();
public final Map<String, Short> offTimeVals = mapOffTimeVals();
public final Map<String , Short> pulseWidthVals = mapPulseWidthVals();
Любая помощь будет высоко ценится.
private Map<Double, Byte> mapNormalOutCurrVals(){
Map<Double, Byte> map = new HashMap<Double, Byte>();
double x = 0.000;
byte i = 0;
//first set of normal output currents
while (x <= 2.000){
normalOutCurrVals.put(new Double(x), new Byte(i));
x += 0.125;
i++;
}
while (x <= 4.000){
normalOutCurrVals.put(new Double(x), new Byte(i));
x += 0.250;
i++;
}
while (x <= 8.000){
normalOutCurrVals.put(new Double(x), new Byte(i));
x += 0.500;
i++;
}
return map;
}
Что такое 'normalOutCurrVals'? Это «нуль»? – Savior
Почему вы делаете 'new Double (x)'? Автобоксинг должен позаботиться об этом. –
Почему вы создаете 'map' (и возвращаете его пустым), но вызываете put на' normalOutCurrVals'? –