Java 对象数组中无法访问的公共方法

Java 对象数组中无法访问的公共方法,java,arrays,arraylist,public-method,Java,Arrays,Arraylist,Public Method,我的问题是无法在数组的对象元素中调用自己的方法 以下是数组中代码部分的代码: public class CardRules { private Object cardArray[]; public CardRules(Object cardArrayCopy[]){ cardArray = cardArrayCopy; multiples(); } public void multiples(){ for(Object ArrayElement: cardArray)

我的问题是无法在数组的对象元素中调用自己的方法

以下是数组中代码部分的代码:

public class CardRules {
    private Object cardArray[];

public CardRules(Object cardArrayCopy[]){

    cardArray = cardArrayCopy;
    multiples();
}
public void multiples(){
for(Object ArrayElement: cardArray){
    System.out.println(ArrayElement);
}
}
}
对于卡对象:

public class Card {
    private int rank;
    private int suit;
    private String Stringrank[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"};
    private String Stringsuit[] = {"Spades", "Hearts", "Diamonds", "Clubs"};
    public static int CardNo = 0;

public Card(int cardDetails[]){
    rank = cardDetails[1];
    suit = cardDetails[0];
    CardNo++;
}
public String getCard(){
    return ("Card: " + Stringrank[rank] + " Of " + Stringsuit[suit]);

}
   public int getRank(){
       return rank;
   }
   public int getSuit(){
       return suit;
   }
}

这部分程序的输出是散列码, Card@9304b1 Card@190d11 Card@a90653 Card@de6ced Card@c17164

我想放一些类似的东西

System.out.println(ArrayElement.getRank());
有人知道为什么会这样吗


顺便说一句,使用premade.toArray()方法从另一个类中的ArrayList复制数组

编译器无法知道这些对象是卡片,因为您在数组中将它们声明为
对象
s。如果您确定它们将是卡片,请将数组声明为
卡片
私人卡卡片数组[];
)或将它们转换为
((卡片)ArrayElement).getRank()

如果要再次检查,请在强制转换之前使用卡片的
阵列元素实例验证这是一个真实的
卡片
实例。

System.out.println()
调用
对象.toString()
,因此覆盖卡片类的
toString()
方法。(顺便说一句:最好使
Stringrank
Stringsuit
都是静态的):


如果他有权访问将
ArrayList
转换为数组的另一个类,他还可以通过将数组传递给
toArray
方法,使其返回
Card
类型的数组。这样他就可以避免对单个数组元素进行显式强制转换。e、 g.
Card[]cardArray=(Card[])list.toArray(新卡[array.size()])
最好将它们声明为枚举。牌的等级和花色不太可能很快改变。
@Override
public String toString() {
    return String.format("Card [rank= %s, suit= %s]", 
           Stringrank[rank], Stringsuit[suit]);
}