【发布时间】:2016-03-04 21:17:20
【问题描述】:
我正在使用桩。就我而言,桩是包含 Card ArrayLists 的对象。我将使用超过 1 个,每个都有不同的用途。
我在这里尝试做的是两种方法:
getCards:将 Object 引用从一个 Pile 移动到另一个 Pile
removeCards:删除一些arraylist条目
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
}
}
}
错误是:
静态字段 Pile.newPile 应该以静态方式访问。
有人愿意解释我做错了什么,我该如何处理?
【问题讨论】:
-
newPile是static。这意味着只有一个ArrayList,而不是每个Pile都有一个ArrayList。 -
@PaulBoddington 从
newPile中删除static给了我“无法对非静态字段 Pile.newPile 进行静态引用”并且没有消除最初的问题。 -
在尝试提出更多问题之前,请阅读How do I ask a good question?。