У меня возникла проблема с исключением Java Nullpointer. Поэтому в основном я делаю код, который будет запрашивать у пользователя ввод данных X, а затем в соответствии с типом данных, который он напечатал, он добавит их в качестве соответствующего типа переменной, сравнивая его с другими предыдущими существующими переменными.Ошибка при попытке сравнить экземпляр класса с переменным типом
varvar A;
varvar B;
varvar C;
System.out.println("Choose what to do:");
System.out.println("1. Set variable A");
System.out.println("2. Set variable B");
System.out.println("3. Set variable C");
b = src.nextInt(); //next int into variable b
if(b==1){
while (src.hasNext()) { //Next thing the user is going to input
if (src.hasNextInt()) { // If it's an integer, do this :
if("Integer".equalsIgnoreCase(B.getClass().getSimpleName())){B = null;};
if("Integer".equalsIgnoreCase(C.getClass().getSimpleName())){C = null;};
Эти последние 2 строки в основном являются тем, с чем я борюсь. B и C являются экземплярами класса varvar. Я пытаюсь удалить B и C, если их существующее содержимое является переменной Integer. Но всякий раз, когда я добавляю эти две строки, я получаю исключение Nullpointer. Вот более ранний код класса varvar:
public static class varvar {
int x;
boolean y;
double z;
public varvar (int x){
this.x = x;
}
public varvar (boolean y){
this.y = y;
}
public varvar (double z){
this.z = z;
}
Может ли кто-нибудь мне помочь? Я пытаюсь найти способ сравнить типы переменных B и C с Integer и удалить их, если они действительно содержат переменные типа Integer.
Кажется 'B.getClass()' is 'null'. поставить точку отладки и проверить. – iMBMT
@bmthaker B уже имеет значение null при инициализации, но оператор if должен запускаться только в том случае, если B является целым числом, поэтому он может обнулить его значение. – Zee
Я не понимаю, чего вы пытаетесь достичь? что такое 'varvar'? Положите условие как 'if (B! = Null &&" Integer ".equalsIgnoreCase (B.getClass(). GetSimpleName()))' для обработки нулевого указателя. он не выполнит условие, если 'B' имеет значение null и не вызывает никакой * ошибки *. – iMBMT