我正在尝试编写将接受整数数组并将其内的整数转换为相同大小的对象数组的键的代码。 当从主方法类运行它时,我不断收到空指针异常。

在我的主要方法中,我有5个网格(grid1,grid2 ... grid5),它们的数据形式为int [] [] grid。 在我的一个类中,构造函数接受网格作为参数,然后调用方法createArrayFromArrayObject(int [] [] grid),该方法应从主方法中获取网格,然后将其整数转换为对象的键构造函数使用的方法。

参见下文-我编写了代码以及显示错误的位置。 从IDSearch的主要方法调用特定的网格:IDSearch ids = new IDSearch();

            SearchNode g1 = new SearchNode(grid1);
            SearchNode g2 = new SearchNode(grid2);
            SearchNode g3 = new SearchNode(grid3);
            SearchNode g4 = new SearchNode(grid4);
            SearchNode g5 = new SearchNode(grid5);

            ids.goalSearch(g1);//I get an error message here
            ids.goalSearch(g2);
            ids.goalSearch(g3);
            ids.goalSearch(g4);
            ids.goalSearch(g5);


SearchNode(int [][] grid){
    nodesMatrix = createArrayFromArrayObject(grid);//and then here
    for (int i=0; i<15; i++) { 
        for (int j=0; j<15; j++) {
            if(nodesMatrix[i][j].getElement() == 2) {
                xStart = i;
                yStart = j;
            }
            if(nodesMatrix[i][j].getElement()==3) {
                xGoal=i;
                yGoal=j;
etc.etc. 

public static Node [][] createArrayFromArrayObject(int [][] grid) {
    Node [][] nodesMatrix= new Node[15][15];
    for(int i = 0; i < grid.length; i++){
        for(int j = 0; j < grid.length; j++) {
            nodesMatrix[i][j].setElement(grid[i][j]);//and then here
        }
    }
    return nodesMatrix;
};
//and it throws a null pointer exception.

错误从IDSearch类的主要方法到IDSearch类的构造函数,再到从数组对象方法创建数组。

我试图弄清楚如何修复它,以便它可以访问网格数据并且不会引发空指针异常。

  ask by jblock translate from so

本文未有回复,本站智能推荐:

3回复

Java多维数组被视为基元或对象

是int[][] matrix = new int[10][10]; 一个原始或它被认为是一个对象? 当我将它作为参数发送给函数时,它是否发送它的引用(如对象)或其值(如原语)?
7回复

数组是原始类型还是对象(或其他完全类型)?

这个问题基本上是不言自明的。 我一直无法找到数组的 API(除了这个Arrays ,但这只是定义了一堆用于处理实际数组的静态辅助函数)。 如果没有它的类,这似乎表明数组不能是Object 。 然而,数组具有像length这样的公共字段和可以像.equals()和.clone()这样调用的方法这一事
2回复

杰克逊Databind读取JSON三维数组

我想读取一个json数组,如果可能的话,将其放入一个int三维数组中。 数据将如下所示,由于尚未完成,我可以更改其设计以适合我的需求。 值是愚蠢的,但要知道的是(我要小心)*我必须嵌套一个未知数的包含整数的数组,在数组中嵌套两次,在根节点中重复三遍或更少。 IE浏览器int[3 o
4回复

自定义对象属性-多个基本变量或对象数组

我在编程方面很新鲜,我尝试制作简单的应用程序。 应用程序将允许用户为流行的RPG游戏制作角色表。 现在,我试图(在纸上)对其建模,并提出(也许是一个愚蠢的问题)问题。 每个角色都有一套技能-很多(33)。 每个技能手杖的值为0-5。 现在我的问题是:使33个int插入角色对象对象或
2回复

在对象数组上使用for-each-“ Integer [] array”-为什么“ for(int i:array)”有效?

当我遍历对象数组时,为什么在第二个“ for-each”循环中使用原始数据类型起作用? 是否在幕后进行了与Integer对象的原始等效项的转换?
2回复

Array如何将原始数据类型视为对象?

我对Java编程有点陌生。 两三天前,我在脑海中遇到一个关于数组的问题,下面给出。 每个Java程序员都知道,数组是对象的集合,它是否包含原始数据类型或字符串都无关紧要。 所以我的问题是,如果Array是Object的集合,那么它如何处理或将原始数据类型转换为对象 ,因为在Java
3回复

数据访问对象原始类型与对象类型?

想就最好的方法提出意见。 如您所见,int不能为null。 凡作为整数的对象都可以。 问题:带有数字列的数据库值可以为null或可以包含数字。 当数据库传递null值时,我们收到并指出“原始值不能为null”的异常。 但是,当我们使用Integer类时,我们正在创建该对象(
4回复

Java中的基元与对象

我正在为考试做一些练习,并且需要一些有关Java原语和Java对象的问题的帮助(我做得正确吗?如果没有,为什么?)。 这些都是对还是错 。 以下变量声明是对动态分配并存储在堆中的对象的引用:int x = 7; False ,因为int是原始类型,它通过值传递 以下变量声