У меня есть объект Fraction, который я определил в классе java. Мне нужно уметь делать математику с фракциями, которые я создаю. Когда я делаю математику с неопределенной дробью, я должен вернуть null. Моя проблема заключается в том, что пользователь не знает, что null был возвращен и пытается выполнить математику с объектом Fraction, для которого установлено значение null.NullPointerException при вызове оператора
Например.
Fraction f1=null;
Fraction f2=new Fraction(1, 2);
Fraction f3=f1.add(f2);
Это даст мне ошибку. Но когда я делаю это наоборот, ошибок нет.
Fraction f1=null;
Fraction f2=new Fraction(1, 2);
Fraction f3=f2.add(f1);
Эта ошибка не будет и вместо этого вернет значение null.
Почему ошибка верхнего примера и как заставить его вместо этого возвращать null? Кроме того, проверка, если фракция равна нулю, не может произойти в моей программе тестера, она должна произойти в классе Fraction. Оператор добавления работает просто отлично. Я просто хочу, чтобы он возвращал значение null, когда объект Fractions равен нулю.
верхний пример не работает, потому что 'f1' имеет значение null, и вы не можете вызвать функцию с нулевым значением. Что вы можете сделать, это заменить вашу функцию статической функцией, которая проверяет оба операнда. – njzk2
Вы не можете. Вызов метода по нулевой ссылке является ошибкой и всегда приведет к NPE. –
Вы хотите, чтобы фракция f3 возвращала значение null во втором примере? – Scitech