gpt4 book ai didi

java - 移动和删除 ArrayList 条目

转载 作者:行者123 更新时间:2023-11-30 07:45:23 24 4
gpt4 key购买 nike

我正在使用桩。在我的例子中,堆是包含卡片数组列表的对象。我将使用其中 1 个以上,每个的用途都不同。

<小时/>

我在这里想做的是制作两种方法:

getCards:将对象引用从一个 Pile 移动到另一个 Pile

removeCards:删除多个数组列表条目

import java.util.ArrayList;

public abstract class Pile {

public static ArrayList <Card> newPile;

public Pile() {
newPile = new ArrayList <Card>();
}


public abstract void displayPile();

public void removeCards(int numOfCards) {
for (int i = 0; i < numOfCards; i++) {
Pile.newPile.remove(0);
}
}

public static void getCards(int numOfCards, Pile fromPile) {
for (int i = 0; i < numOfCards; i++) {
Pile.newPile.add(i, fromPile.newPile.get(i)); // here is the error
}
}

}

错误是:

The static field Pile.newPile should be accessed in a static way.

<小时/>

有人愿意解释我做错了什么以及我该如何处理它吗?

最佳答案

静态成员变量由它们所属类的所有实例共享。由于 newPhile 是静态的,因此您无需在每个单独的对象中编辑它:

enter image description here(http://itcareerworld.com/wp-content/uploads/2015/02/static-keyword-diagram-1.png)

因为它是静态的,所以只有一份副本。要么从变量和方法中删除静态,要么不创建要实例化的对象,因为它已经在对象之间共享。我建议第一个。

我注意到你的评论,你说:

cannot make a static reference to the non-static field Pile.newPile

如果您执行该选项,只需将所有内容设为非静态(变量和方法)即可。

关于java - 移动和删除 ArrayList 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com