int m=valeurs.get(p);
кинет NullPointerException
если таковой valuers.get(p)
возвращается null
, из-за попытки для автоматического сброса значения null
для примитива int
.
Если ваш метод будет возвращать Integer
вместо этого, он сможет возвращать null
:
public Integer getValeur(int x, int y) {
Position p=new Position(x,y);
Integer m=valeurs.get(p);
return m;
}
EDIT:
После видеть ваш комментарий, что вы не можете изменить тип возвращаемого getValeur
, ваш единственный вариант (кроме возвращаемого значения по умолчанию, представляющий нуль) заключается в том, чтобы выбросить исключенное исключение (или проверенное исключение, если метод, который вы переопределяете, уже выбрасывает это исключение или суперкласс этого исключения), если valuers.get(p)
возвращает null
:
public int getValeur(int x, int y) {
Position p=new Position(x,y);
Integer m=valeurs.get(p);
if (m == null) {
throw new IllegalArgumentException ("Invalid position " + x + "," + y);
}
return m;
}
Пожалуйста, разместите полное исключение. – Turing85
Альтернативный дубликат: http://stackoverflow.com/questions/1811706/java-null-pointer-exception-when-unboxing-integer Вы назначаете 'Integer''' int', и unboxing запускает 'NullPointerException', если это «null» (например, потому что на карте нет значения). –