java - 一行中不能声明超过 2 个数组

标签 java arrays runtime-error

我正在为我正在学习的计算机科学类(class)做作业,我试图在一行中声明 3 个字符串数组,但它一直给我这个错误消息

java.lang.NullPointerException

我稍微搞了一下,然后通过更改解决了问题

public static String[] offence,name,date = new String[8];

public static String[] offence,name = new String[8];

public static String[] date = new String[8];

为什么只有当我这样做时它才起作用?

PS,我是新人,所以对我宽容一些。

    package pDatabaseApp;

    import java.io.*;

    public class PDatabaseMenu {

    public static String[] offence,name = new String[8];
    public static String[] date = new String[8];

    public static void main(String[] args) throws IOException {

        String line;

        BufferedReader in;
        in = new BufferedReader(new InputStreamReader(System.in));

        boolean finnish = false, reenter = false;

        while(finnish == false) {

            int i;

            for(i = 0; i <= 7; i++) {

                System.out.println("enter a name");

                name[i] = in.readLine();

                System.out.println("enter a day");

                String day = in.readLine();

                System.out.println("enter a month");

                String month = in.readLine();

                System.out.println("enter a year");

                String year = in.readLine();

                date[i] = day + "/" + month + "/" + year;

                String offenceEnter[] = new String[3];
                String offenceType[] = {"Assault","Arson","Theft"};

                int l;
                for(l = 0; l <= 2; l++) {

                    System.out.println("is there offence " + offenceType[l]);
                    offenceEnter[l] = in.readLine();

                    if(offenceEnter[l] == "yes") {

                        offence[i] = offenceType[l];

                    }
                }

            }

        }

        in.close();
    }
}

最佳答案

记住代码,

public static String[] offence,name,date = new String[8];

只会初始化日期。因此,其他变量保持未初始化状态。结果你得到了java.lang.NullPointerException

你需要类似的东西

 public static String[] offence= new String[8],name= new String[8],date = new String[8];

关于java - 一行中不能声明超过 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883124/

相关文章:

arrays - 用于修剪数组中大值的数据结构?

java - 如何使用继承和构造函数使用 1 个具有 2 个不同大小的数组

java - 使用 Swing 时出错

npm - yarn self 更新抛出 OAuth2 身份验证错误

pandas - 我想在 JUPYTER 中使用 pandas2ri 但出现 tzlocal 问题?

java - 什么时候使用List,什么时候使用LinkedList?(java)

java - 运行多个 Firestore 查询并等待所有查询完成

java - 生成按住控制按钮的 KeyStroke

java - 验证 N 皇后问题的解决方案

php - 将带有图像路径的数组序列化到数据库中