Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户定义类型的Java数组_Java_Arrays_Types_Defined - Fatal编程技术网

用户定义类型的Java数组

用户定义类型的Java数组,java,arrays,types,defined,Java,Arrays,Types,Defined,我试图填充一个用户定义类型的数组——由3个字符串和1个布尔值组成。类型名为PrinterType.,包含设置和获取这3个字符串和布尔值的方法 我试图在另一个类文件中使用它,在这个类文件中将执行数组填充,但是当我运行这个项目时,我得到了java.lang.NullPointerException 我知道这是字符串字段未初始化的问题,但我不知道如何初始化用户定义类型数组的字符串字段。我希望有人能在这方面帮助我。下面是用户定义的类型和实现类 顺便说一下,错误指向实现类的行:Printers[i].se

我试图填充一个用户定义类型的数组——由3个字符串和1个布尔值组成。类型名为
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();