当前位置: 首页 > 知识库问答 >
问题:

如何在Java中编辑来自另一个类的数组[重复]

郎同化
2023-03-14

我已经创建了一个2D数组(用作一个游戏板),在另一个类我想采取我的数组,并能够对它执行操作。

我的数组定义(在类playingboard中):

public char[][] myGrid = new char[12][12];

现在我想在我的项目中从其他类操纵这个数组。我尝试在未定义它的类中调用此网格

int i, j;
for(i = 0; i < 12; i++) {
    for(j = 0; j < 12; j++) {
        PlayingBoard.myGrid[i][j] = 'x';
    }
}

我得到了错误:

不能从静态上下文引用非静态变量mygrid

如何从第二个类中引用、编辑和操作mygrid

共有2个答案

刘选
2023-03-14

答案指向静态数组的使用,从OO的角度来看,这让我感到悲哀。

如何确保您的游戏板有一个适当封装的结构,使用“addpiece”方法?

PlayingBoard myBoard = new PlayingBoard();

int i, j;
for(i = 0; i < 12; i++) {
    for(j = 0; j < 12; j++) {
        myBoard.addPiece(i,j, 'x');
    }
}

即使这样,如果您的片段本身是“聪明的”,您也希望创建一个对象来包装它们,而不是仅仅存储一个字符。

public PlayingPiece[][] _board = new PlayingPiece[8][8];

此外,您在循环中使用了12,而在初始化中使用了8,因此需要一个IndexOutOfBounds异常。

蔡弘扬
2023-03-14

您必须更改以下两件事中的一件:

>

  • 声明myGrid为静态

    public static char[][] myGrid = new char[8][8];
    

    通过对象实例访问MyGrid:

    PlayingBoard pb = new PlayingBoard();
    int i, j;
    for(i = 0; i < 12; i++) {
        for(j = 0; j < 12; j++) {
            pb.myGrid[i][j] = 'x';
        }
    }
    

  •  类似资料:
    • 下面是一个动态数组。现在我想为“BHD0000000002”编辑一个特定的数组。我通过ajax请求获得以下数组。但是,我无法编辑内部数组元素。例如,我试图编辑键“BHD0000000002”的内部数组值,但无法解决问题。有人能帮忙吗,先生/女士? 这是原始数组: : 到目前为止,我已经尝试了以下代码,但它不起作用。有人能帮忙吗?

    • 我有两个IntelliJ IDEA Java项目;项目A和项目B。我想在ProjectB中导入并使用ProjectA中的代码。我该怎么做? 在Eclipse中,我只需转到ProjectB的构建路径设置并添加ProjectA。

    • 我有一个Meteor React应用程序,我正在开发该应用程序,我想在其中以一种模式实现登录/注册功能。我不知道如何通过单击“注册”或“登录”按钮打开模式 我有以下两个组成部分: UI/组件/main-布局/头/LoggedOutNav.jsx UI/组件/模态/LoginRegistration.jsx 如何从其他组件打开模态?

    • 我知道我们在函数组件中使用history.push(),并对重定向路由做出反应。但是在类组件中,我们如何在点击按钮时重定向

    • 我想把一个模型对象映射到dto模型。我已经有一个对象的映射器。我如何在另一个类中的另一个映射器中重用这个映射器? 我有下面的模型 这是我的地图 我希望将History映射到HistoryDynamo并重用IdentifierMapper映射HistoryDynamo中的一个对象。如何在ToHistoryDynamo中使用toIdentifierDynamo?

    • 我有两个数组 我想检查是否包含中的任何项。基于这里的帖子,我有以下代码,它只适用于chrome