2015-04-15 2 views
0

Я использую ArrayList<String> и поймаю NullPointerException по методу, который проверяет, имеет ли значение ArrayList<String> значение. Я передаю метод int методу, затем преобразовывая Integer в String.ArrayList содержит NullPointer

ArrayList<String> array = new ArrayList<String>(); 

public boolean doesContain(int i){ 
    return array.contains(Integer.toString(i)); 
} 
+1

На какой линии он его бросает? – Crazyjavahacking

+3

Добавить stacktrace. – Touchstone

+0

Он выбрасывает класс, который я называю doContain – MaxiiPad

ответ

1

Основное различие с точки зрения программиста между Integer и Int, является то, что целое число может быть пустым, и INT не может.

Так что, если вы вызываете метод a(int a) так:

Integer x = null; 
a(x); 

Он будет бросать NullPointerException, потому что он не может преобразовать нулевое значение в междунар.

-1

попробовать это один

ArrayList<String> array = new ArrayList<String>(); 

public boolean doesContain(int i){ 
try{ 
return array.contains(Integer.toString(i)); 
     } catch (NullPointerException e){} 

} 
+0

Пробовал это, все еще бросает – MaxiiPad

0

Если этот код верен,

Либо вы вызываете метод с Integer, который является нулевым или ваш класс, которые содержат этот метод является нулевым, и призывая к YourClass .doesContain (1) вызывает исключение nullPointerException, потому что «yourClass» имеет значение null.

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