java - ArrayList 不保存我的值

标签 java

以下:我使用自己的对象创建一个 ArrayList,该对象保留两个 int(x,y)

但我只得到 0 而不是数字。我不明白为什么它不起作用。

public class Snake {

public class SnakeBody {
    public int x;
    public int y;
    SnakeBody(int x, int y){
        x = this.x;
        y = this.y;}
}

protected ArrayList<SnakeBody> SnakeBody = new ArrayList<SnakeBody>();
protected PointF Fruit;

protected boolean GameStarted = false;

//Constructor
public Snake(){}

public void startSnake()
{
    if(!GameStarted)
    {
        GameStarted = true;
        SnakeBody.add(new SnakeBody(1,14));
        SnakeBody.add(new SnakeBody(2,14));
        SnakeBody.add(new SnakeBody(3,14));
        int itemcount = SnakeBody.size();
        Log.d("Snake.java:Game started: ", "" + itemcount);
        for(int i=0; i<itemcount; i++){
            Log.d("First Snake created: XY->", "" + SnakeBody.get(i).x + ":" + SnakeBody.get(i).y);
        }
    }
}

这就是我得到的 Log.d 输出:

Snake.java:游戏开始:﹕3

创建的第一条蛇:XY->:0:0

创建的第一条蛇:XY->:0:0

创建的第一条蛇:XY->:0:0

最佳答案

你想改变

SnakeBody(int x, int y){
    x = this.x;
    y = this.y;
}

SnakeBody(int x, int y){
    this.x = x;
    this.y = y;
}

您实际上所做的是将类的值分配给接收到的参数,它永远不会更新 SnakeBody

顺便说一句,我认为将构造函数的参数命名为与类变量相同的名称是一种不好的做法,就像省略 this 关键字一样,不清楚分配给什么什么。

关于java - ArrayList 不保存我的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28460668/

相关文章:

java - 在按下按钮之前,如何让我的按钮出现在随机位置?

java - 如何在类中找到特定按钮。该按钮可能与该类之外的其他按钮共享类名

java - jSoup 将 DIV 标签中的文本提取到字符串

java - 如何在 mybatis_dynamic_sql 中为 TO_CHAR(USE_BY_DATE - ? ,'YYYYMMDD' ) >=TRUNC(SYSDATE) 创建查询

java - iText 创建页面大小不等的文档

java - 通过 Java ORM 批量删除/清除记录

Java - 泛型通配符问题

java - 如何检查 JTabbedPane 中的选项卡是否处于 Activity 状态?

java - 用 JAVA 编写的 COBOL 解析器

java - 用于处理运动数据的快速傅里叶变换算法/库? (转发)