java - 处理 "java.lang.NullPointerException"

标签 java nullpointerexception

所以我是第一次学习 Java。当在另一个类中调用 square.toString() 时,下面的代码抛出一个 NullPointer 异常(其中 square 是这个类中定义的对象的一个​​实例),我'我有点不清楚为什么这不起作用。谁能给我解释一下?

public class SquareBuilder {

String box;
String[] parts;
final private String beam = "----";
final private String collumn = "|";
private int size;

public SquareBuilder(int firstSize)
{
    size = firstSize;

}

public static String repeatString(String s, int n) 
{   
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < n; i++) 
    {
        sb.append(s);
    }

    return sb.toString();
}

public void changeSize(int newSize)
{
    size = newSize;

}

public String toString( )
{
        parts[0] = repeatString(beam,size) + "\n";
        parts[1] = collumn + repeatString(" ",4*size-2) + collumn + "\n";
        box = parts[0] + repeatString(parts[1],size-2) + parts[0];
    return box;

}
}

最佳答案

不清楚您为什么声明一个名为 partsinstance 变量,然后您取消引用该变量 (parts[0] = ...)在 toString() 中 - 但您从未对其进行初始化,因此该值为 null... 因此异常。

为什么您的实现不只是:

public String toString( )
{
    String ends = repeatString(beam,size) + "\n";
    String middle = collumn + repeatString(" ",4*size-2) + collumn + "\n";
    return ends + middle + ends;
}

想要在 toString() 中修改对象是非常不寻常的。

关于java - 处理 "java.lang.NullPointerException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179886/

相关文章:

java - 游戏板状态列表的输出显示所有状态都是相同的

nullpointerexception - schemagen 空指针异常

Java Android Studio SQL ResultSet 由应用程序执行时出现 NullPointerException

android - 错误空指针。 (io.reactivex.Scheduler)' 在空对象引用上

java - Java程序中的空指针异常

android - Service.startForeground() 在使用 ServiceTestCase 运行时抛出 NullPointerException

java - 在Spring Boot中更新基础Spring版本

Java Date异常处理try catch

java - hbm2ddl.auto 设置为 "UPDATE",但它试图在每次插入之前创建表

java - Selenium WebDriver - 使用 Java - 如何检查错误消息在网页中是否可见?