我在从数组内的对象访问方法时遇到问题。我试图创建纸牌游戏。在我创建卡片对象的那一刻,我将它们推入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();
}
答案 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() {
}
}
如果您对类的定义有些类似。然后事情应该按预期工作。如果没有,请指出并帮我回来。