调用运算符

时间:2016-01-11 17:18:47

标签: java object nullpointerexception operator-keyword

我有一个我在java类中定义的Fraction对象。我需要能够用我创建的分数进行数学运算。当我使用未定义的分数进行数学运算时,我需要返回null。我的问题是当用户不知道返回null并尝试使用设置为null的Fraction对象进行数学运算时。

例如。

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类中发生。 add运算符工作得很好。我只是希望它在Fractions对象等于null时返回null。

2 个答案:

答案 0 :(得分:4)

您尝试做的事情是不可能的,因为您无法在null对象上调用方法。尝试它总是会产生和异常。但是,如果这对您来说非常重要,您可以使用两个参数将API更改为静态方法:

public static Fraction add(Fraction f1, Fraction f2)

现在,如果其中一个参数为null,您可以返回null

答案 1 :(得分:2)

null对象上调用方法,始终以NullPointerException结束。