Java 移动和删除ArrayList条目

Java 移动和删除ArrayList条目,java,arraylist,static,Java,Arraylist,Static,我用的是桩。在我的例子中,堆是包含卡片数组列表的对象。我将使用不止一个,每一个都不同于它们的用途 我在这里尝试的是制作两种方法: getCards:将对象引用从一堆移动到另一堆 removeCards:删除多个arraylist条目 import java.util.ArrayList; public abstract class Pile { public static ArrayList <Card> newPile; public Pile() { newPil

我用的是桩。在我的例子中,堆是包含卡片数组列表的对象。我将使用不止一个,每一个都不同于它们的用途


我在这里尝试的是制作两种方法:

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

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
    }
}

}
import java.util.ArrayList;
公共抽象类堆{
公共静态数组列表newPile;
公共桩(){
newPile=newarraylist();
}
公开摘要无效显示堆();
公共无效删除卡(整数卡){
对于(int i=0;i
错误是:

静态字段Pile.newPile应以静态方式访问



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

静态成员变量由它们所属类的所有实例共享。因为
newPhile
是静态的,所以您不需要在每个对象中编辑它:

()

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

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

无法对非静态字段Pile.newPile进行静态引用


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

可以在静态方法中访问静态变量,而无需使用引用变量。您可以在不使用参考变量的情况下进行尝试。

newPile
静态的
。这意味着每个
堆只有一个
ArrayList
,而不是
ArrayList
@PaulBoddington从
newPile
中删除
static
会让我“无法对非静态字段Pile.newPile进行静态引用”并且不会删除最初的问题。请在尝试提问之前阅读。伙计,我从
newPile
和方法中删除了它,但是“无法进行静态引用…”现在在这两种方法中,在for循环(Pile.newPile…)的句首,静态方法属于该类,非静态方法属于类的实例。您现在是否仍在使用该对象来调用该方法,因为它不是静态的,所以您现在需要使用一个对象。@NickTritsis现在您得到它了吗?如果我的答案有点帮助,那么请把我的答案标记为最佳答案。如果你还有任何问题,请不要害怕问我很乐意帮忙谢谢,伙计,我知道了。我真的很高兴你解释了静态修饰符,因为我一开始没有对它给予足够的关注,但现在我很清楚:)你会得到最好的答案并投票赞成的。我不担心,我知道stackoverflow是如何工作的:)另外,如果你不介意的话,也投票赞成我的问题,我不想在这样一个小问题上得到一个否定的分数:-/再次感谢你的帮助^^编辑:没有足够的代表投票,但它被标记为最佳答案^^^@NickTritsis我投票给了你的问题…我知道你的感受。目前,我面临着被禁止提问的风险,因为我在和上收到了过多的反对票,而阻止信息显示的唯一方法是在这些问题上获得更多的喜欢…无论如何,我喜欢你的问题,并且很高兴帮助你。再要我帮忙就行了!