java中的数据写入和读取错误

java中的数据写入和读取错误,java,class,oop,parameters,Java,Class,Oop,Parameters,线程“main”java.lang.NullPointerException中出现异常 在MovieSeating.assignCustomerAt(MovieSeating.java:27) 位于Assignment8.main(Assignment8.java:84) 在我从一个包含名字和姓氏列表的txt文件中提取数据之后,在我尝试将名称分配给2d数组边界内的某个元素之后,它会给出和错误 谢谢 好的,这是你的问题: 您有一个名为seats的数组。它的类型为String。所以它可以容纳像“

线程“main”java.lang.NullPointerException中出现异常 在MovieSeating.assignCustomerAt(MovieSeating.java:27) 位于Assignment8.main(Assignment8.java:84)

在我从一个包含名字和姓氏列表的txt文件中提取数据之后,在我尝试将名称分配给2d数组边界内的某个元素之后,它会给出和错误

谢谢




好的,这是你的问题:

您有一个名为
seats
的数组。它的类型为
String
。所以它可以容纳像“?”或“免费座位”这样的字符串。但是,您尝试将客户纳入其中。这正是错误消息所说的:
错误:不兼容类型tempcuster=Seats[row][col];^必需:找到客户:字符串1错误

现在你有两个选择。一个非常简单的方法是将阵列的类型更改为客户。不要把“?”放在免费座位上,不要放任何东西给他们。创建数组后,每个“slot”都是
null
,这实际上意味着“无”


顺便说一句:您违反了许多编写Java代码的推荐规则。这只是简单的事情,不会影响您的代码(它无论如何都会运行;)。但是尊重这些不成文的规则是一种很好的做法(比如把{和函数头放在同一行,或者用大写字母命名变量no)。

好的,这是你的问题:

您有一个名为
seats
的数组。它的类型为
String
。因此它可以容纳诸如“?”或“free seat”之类的字符串。但是,您尝试将客户放入其中。这正是错误消息所说的:
错误:不兼容类型tempcuster=seats[row][col 2];^required:Customer找到:String 1错误

现在,您有两个选项。一个非常简单的选项是将阵列的类型更改为客户。不要在免费座椅上放置“?”,而是不向他们放置任何内容。创建阵列后,每个“插槽”都是
null
,这实际上意味着“无”


顺便说一句:您违反了许多编写Java代码的推荐规则。这只是简单的事情,不会影响您的代码(它无论如何都会运行;)。但是尊重这些不成文的规则是一个很好的做法(比如将{与函数头放在同一行,或者用大写字母命名变量no).

因为错误消息本身说您正试图将字符串分配给客户。在第27行

tempCustomer = Seats[row][col];

Seats是一个字符串数组,它将返回试图分配给客户的字符串,因为错误消息本身表示您正试图将字符串分配给客户。在第27行

tempCustomer = Seats[row][col];

Seats是一个字符串数组,将返回试图分配给客户的字符串

将客户放入seat的代码应为:

private Customer getCustomerAt(int row, int col) 
{
    System.out.println("Customer at row " + row + " and col " + col + "." );
    System.out.println(Seats[row][col]);
            /** return customer */
    return new Customer(Seats[row][col]);
}

public boolean assignCustomerAt(int row, int col, Customer tempCustomer) 
{
    if (Seats[row][col].equals("?.?")) 
    {
       /** put a customer to the seat */
        Seats[row][col] = tempCustomer.toString();
        return true;
    }
    else
    {
        System.out.println("Seat taken..");
        return false;
    }
}

让客户就座的代码应为:

private Customer getCustomerAt(int row, int col) 
{
    System.out.println("Customer at row " + row + " and col " + col + "." );
    System.out.println(Seats[row][col]);
            /** return customer */
    return new Customer(Seats[row][col]);
}

public boolean assignCustomerAt(int row, int col, Customer tempCustomer) 
{
    if (Seats[row][col].equals("?.?")) 
    {
       /** put a customer to the seat */
        Seats[row][col] = tempCustomer.toString();
        return true;
    }
    else
    {
        System.out.println("Seat taken..");
        return false;
    }
}

您可以发布错误吗?(错误在哪一行?./MovieSeating.java:27:error:不兼容类型tempcuster=Seats[row][col];^required:Customer-find:String 1 errorOk,我不确定,因为我没有运行代码,我只是在浏览器中查看它,但是:Seats[row][col col].equals(“?。?”)这就是问题所在。如果您得到一个没有客户的空座位,那么Seats[XX][YY]将返回“null”。这意味着“空”或“无”。因此不能在null上调用“equals”,因为null是空的,并且您不能在null上调用某个内容(听起来很有趣,但却是真的)。相反,请测试它是否为null:If(Seats[XXX][YY]==null)您可以发布错误吗?(错误在哪一行?./MovieSeating.java:27:error:不兼容类型tempcuster=Seats[row][col];^required:Customer-find:String 1 errorOk,我不确定,因为我没有运行代码,我只是在浏览器中查看它,但是:Seats[row][col col].equals(“?。?”)这就是问题所在。如果您得到一个没有客户的空座位,那么Seats[XX][YY]将返回“null”。这意味着“空”或“无”。因此不能在null上调用“equals”,因为null是空的,并且您不能在null上调用某个内容(听起来很有趣,但却是真的)。相反,请测试它是否为null:If(Seats[XXX][YY]==null)现在,当我修复它并将数组中的一个空格分配给从文本文件读取的名称后运行它时,我在movieseat.assignCustomerAt(movieseat.java:27)的Assignment8.main(Assignment8.java:84)@Ryan文本文件中有什么(初始数据是什么)你正在使用?你可以给它命名任何东西。它是一个名为customerData.txt的txt文件,包含5个随机的名字和姓氏,用空格隔开。第一个和最后一个是John Smith George Bush等,它们都在单独的行上。现在,当我在修复后运行它,并在数组中为从文本文件读取的名称分配一个空格时,我得到:线程中的异常movieseat.assignCustomerAt(movieseat.java:27)Assignment8.main(Assignment8.java:84)处的“main”java.lang.NullPointerException@Ryan文本文件中的内容(初始数据是什么)你正在使用?你可以给它命名任何东西。它是一个名为customerData.txt的txt文件,包含5个随机的名字和姓氏,用空格隔开。第一个和最后一个是John Smith George Bush等,它们都在单独的行上。谢谢你的提示。你能帮我弄清楚为什么在尝试写入用户名时出现空指针异常错误吗从txt文件到适当边界内的2d数组空间?线程“main”java.lang.NullPointerException中的异常位于Movieseat.assignCustomerAt(Movieseat.java:27)的Assignment8.main(Assignment8.java:84)谢谢你的提示。当我试图将用户名从txt文件写入正确边界内的2d数组空间时,你能帮我找出为什么会出现空指针异常错误吗?线程“main”java.lang.NullPointerException在movieseat.assignCustomerAt(movieseat.java:27)在Assignment8.main(Assignment8.java:84)中出现异常
private Customer getCustomerAt(int row, int col) 
{
    System.out.println("Customer at row " + row + " and col " + col + "." );
    System.out.println(Seats[row][col]);
            /** return customer */
    return new Customer(Seats[row][col]);
}

public boolean assignCustomerAt(int row, int col, Customer tempCustomer) 
{
    if (Seats[row][col].equals("?.?")) 
    {
       /** put a customer to the seat */
        Seats[row][col] = tempCustomer.toString();
        return true;
    }
    else
    {
        System.out.println("Seat taken..");
        return false;
    }
}