首页 > 解决方案 > 使用文件编写器类型转换问题

问题描述

在此处输入图像描述我已经编写了一个文件写入器和一个文件读取器类,您可以在其中将数据放入其中并由文件读取器在另一个类方法中使用它。我在 Account 类中定义的变量的类型是整数。要将其写入文件中,我将类型更改为 String(因为我的其他变量为 String)...当我想在 Account 类的方法中使用该变量时,我无法将它与局部变量(由用户填充)进行比较。它给了我一个“NullPointerException”错误。谁能帮我解决这个问题?(代码只是一个摘要)在此处输入图像描述

public class Account {
    int PIN;
public void meth_name(){
    int pin;

    if(PIN == pin)


    }
}

public class filewriter {

    public void met_name(){
        ....
        fw.write("PIN: "+ Integer.toString(PIN));
    }
}

标签: javastringmethodsinteger

解决方案


在 Java 中,当您使用原始类型时,您无法获得NullPointerException,因为它们不是指针,它们被分配在Stack Memory中。
所以你得到NullPointerException是因为其他一些变量是空的。从您提供的代码中很难理解哪个变量为空。
在你的情况下NullPointerException可能会被抛出,因为

  • 您获取的 PIN 的 Account 对象为空
  • 您正在使用的fw(filewriter) 对象尚未初始化

请提供更多代码或堆栈跟踪NullPointerException以了解异常的根本原因。另请说明fw您在代码中使用的对象类型。是它java.io.PrintWriter还是您的自定义类?


推荐阅读