Java - 通过数组索引访问对象方法

时间:2016-12-13 13:14:12

标签: java arrays object methods

我在从数组内的对象访问方法时遇到问题。我试图创建纸牌游戏。在我创建卡片对象的那一刻,我将它们推入Arraylist。现在当我在这个阵列中得到5个卡片对象时,我想要访问[0]索引卡的方法,但我不知道如何。这是代码:

    public static void main(String[] args) {
      Main main = new Main();
      //creates new card
      Card FireElemental = new Card("Fire Elemental");

      // adds card to array
      main.player2FieldCards.add(FireElemental);

      // Now to access it's methods, the example below is not working but 
      // to give an example of what I want.
      main.player2FieldCards.get(0).SomeMethod();
}

2 个答案:

答案 0 :(得分:1)

如果你的意思是,在你的情况下&#34; Main&#34;包含arraylist,也许你忘了把它变成通用的。您需要添加ArrayList<Card>而不是纯ArrayList,因为没有泛型,您存储对象元素,并且为了在Card对象上调用方法,您需要先将其转换为Card。

((Card)main.player2FieldCards.get(0)).SomeMethod();

答案 1 :(得分:-1)

我认为你的逻辑部分出了问题。您的解决方案可能(或没有)可能存在许多问题。可能List类定义中的Main可能不是通用的。你要做的事情应该是这样的。主要类应该是。

public class Main {
    List<Card> player2FieldCards; //Must not be List player2FieldCards;

    public Main() {
        player2FieldCards = new ArrayList<>();
    }

    public static void main(String args[]) {
        //Rest of you main method code goes here
    }
}

应该有另一个名为Card的类。这必须看起来像。

class Card {
    // Fields declarations 

    // Methods declarations 

    public void SomeMethod() {

    }
}

如果您对类的定义有些类似。然后事情应该按预期工作。如果没有,请指出并帮我回来。