用户定义类型的Java数组
我试图填充一个用户定义类型的数组——由3个字符串和1个布尔值组成。类型名为用户定义类型的Java数组,java,arrays,types,defined,Java,Arrays,Types,Defined,我试图填充一个用户定义类型的数组——由3个字符串和1个布尔值组成。类型名为PrinterType.,包含设置和获取这3个字符串和布尔值的方法 我试图在另一个类文件中使用它,在这个类文件中将执行数组填充,但是当我运行这个项目时,我得到了java.lang.NullPointerException 我知道这是字符串字段未初始化的问题,但我不知道如何初始化用户定义类型数组的字符串字段。我希望有人能在这方面帮助我。下面是用户定义的类型和实现类 顺便说一下,错误指向实现类的行:Printers[i].se
PrinterType.
,包含设置和获取这3个字符串和布尔值的方法
我试图在另一个类文件中使用它,在这个类文件中将执行数组填充,但是当我运行这个项目时,我得到了java.lang.NullPointerException
我知道这是字符串字段未初始化的问题,但我不知道如何初始化用户定义类型数组的字符串字段。我希望有人能在这方面帮助我。下面是用户定义的类型和实现类
顺便说一下,错误指向实现类的行:Printers[i].setPersonality(aLineOfText[0].toString())代码>
您没有初始化打印机阵列的项目
您只是在生成PrinterType的空项数组
Printers = new PrinterType[this.getNumberOfLines()];
// Initialization
for(int i = 0, l = this.getNumberOfLines(); i < l; i++)
Printers[i] = new PrinterType();
Printers=newprintertype[this.getNumberOfLines()];
//初始化
for(int i=0,l=this.getNumberOfLines();i
为什么要使用“打印机[i].setPersonality(aLineOfText[0].toString());”而不是“打印机[i].setPersonality(aLineOfText[0]);”因为我看到你的代码是字符串类型的,所以没有必要对其调用toString()?嗨,疯了,谢谢,我忽略了这一点。非常喜欢使用toString()。但是我已经修改了代码,仍然有相同的错误。这在java中是不可能的吗?诀窍是读取错误堆栈跟踪,以知道错误来自何处。没有这个堆栈跟踪,我们只能猜测,而不是知道。谢谢Marcs!真是帮了大忙!我很高兴,选择这个答案,然后结束你的问题。我对2D数组也有同样的问题,我实例化了一个用户定义类型的新2D数组,但没有用new初始化。多亏了你,兄弟修好了!
Printers = new PrinterType[this.getNumberOfLines()];
// Initialization
for(int i = 0, l = this.getNumberOfLines(); i < l; i++)
Printers[i] = new PrinterType();