如何解决我的toString方法的代码有什么问题?
请注意,我是编程的完整入门者,并且发现学习Java非常困难。我有一项学校任务,要求我为toString()方法编写代码,但我盲目地遵循老师在课堂上编写/教学的内容,但由于某些原因,当我运行该代码时,我的代码似乎无法正常工作测试文件?我在下面包含了我的代码。
我确实收到一条错误消息,内容如下-“空指针访问:变量coef只能在此位置为null” ,但是当我更改所有coef []变量时,则需要更改代码变得无聊,因为它只等于空。
任何指针都非常感谢!
编辑1 :谢谢您的答复-我认为我需要在我的toString()方法中将coef []初始化为变量(哎呀!)。另外,感谢您提供了指向NullPointer问题的链接-该链接提供了一些非常详尽的解释,现在我了解到我已取消引用coeff[]
变量。
查询a:我已经删除了第一行,但现在看来我的代码在此行return coef[1]+ "x + " + coef[0];
上失败了
查询b:很好奇,如果类为复数,为什么这是一个不好的信号?
public class Polynomials {
public Double coefficient;
public Integer exponent;
private int[] coef;
public String toString() {
String[] coef = null;
if (exponent <= -1)
return "0";
else if (exponent == 0)
return "" + coef[0];
else if (exponent == 1)
return coef[1]+ "x + " + coef[0];
String s = coef[exponent] + "x^" + exponent;
return s;
}
解决方法
您的Polynomials
类包含3个字段,其中一个称为coef
。然后,在toString方法中声明一个局部变量,也称为coef
。
在Java中,这意味着局部变量“使字段”变暗了” -换句话说,对于整个方法,coef
是指String[] coef = null;
而不是{ {1}}。
并且该本地字段始终为空-您创建它,将其初始化为null,并且从不对其进行更改。因此,int[] coef
将确保在运行时抛出choef[0]
。
解决方法似乎是....只需完全删除该NullPointerException
行。我不知道你为什么写那本书,或者它试图达到什么目的。
NB:该类不应该命名为String[] coef = null;
吗?将类命名为复数通常是一个不好的信号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。