“处理”;java.lang.NullPointerException“;
所以我第一次学习Java。下面的代码在另一个类中调用“处理”;java.lang.NullPointerException“;,java,nullpointerexception,Java,Nullpointerexception,所以我第一次学习Java。下面的代码在另一个类中调用square.toString()时抛出NullPointer异常(其中square是该类中定义的对象的实例),我有点不明白为什么这不起作用。有人能给我解释一下吗 公共类生成器{ 线盒; 字符串[]部分; 最终专用字符串字符串字符串=“---”; 最终私有字符串collumn=“|”; 私有整数大小; 公共SquareBuilder(int firstSize) { 大小=第一个大小; } 公共静态字符串repeatString(字符串s,in
square.toString()
时抛出NullPointer
异常(其中square是该类中定义的对象的实例),我有点不明白为什么这不起作用。有人能给我解释一下吗
公共类生成器{
线盒;
字符串[]部分;
最终专用字符串字符串字符串=“---”;
最终私有字符串collumn=“|”;
私有整数大小;
公共SquareBuilder(int firstSize)
{
大小=第一个大小;
}
公共静态字符串repeatString(字符串s,int n)
{
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
不清楚为什么您声明了一个名为parts
的实例变量,然后在toString()
中取消引用(parts[0]=…
)-但您从未初始化它,因此该值为null
。。。因此有例外
为什么您的实施不仅仅是:
public String toString( )
{
String ends = repeatString(beam,size) + "\n";
String middle = collumn + repeatString(" ",4*size-2) + collumn + "\n";
return ends + middle + ends;
}
在
toString()
中修改对象是非常不寻常的,因为您的问题没有正确框定,但是我猜您在toString()方法中得到了NPE。原因是您从未真正初始化数组String[]部分代码>在您的代码中
您必须首先对其进行初始化:
public SquareBuilder(int firstSize)
{
size = firstSize;
this.parts = new int[give the size here];
}
当您尝试对空对象使用方法时,会出现NullPointerException。您应该在构造函数中使用表达式初始化部分
数组
parts=新字符串[您想要什么版本]代码>
我不清楚你在用这个阵列做什么 你的异常的完整堆栈跟踪是什么?我的大脑中有数组是出于某种原因,显然没有理由使用它们。谢谢