Object 比较两个对象内部的字符串

Object 比较两个对象内部的字符串,object,equals,Object,Equals,我一直在尝试将纸牌对象内部的字符串与其他纸牌对象进行比较,以便在发放扑克牌时检查是否存在重复 除了打印比较语句时,我得到的是Card@97sd829. 我制作了自己的Equals方法,用于比较类内的对象卡,但仍然无效 我尝试过使用equals对象的覆盖,但是我得到一个错误,说它需要在超类中 public static boolean Equals(Card a, Card b) { String str1 = a.toString(); String str2 = b.toStr

我一直在尝试将纸牌对象内部的字符串与其他纸牌对象进行比较,以便在发放扑克牌时检查是否存在重复

除了打印比较语句时,我得到的是Card@97sd829. 我制作了自己的Equals方法,用于比较类内的对象卡,但仍然无效

我尝试过使用equals对象的覆盖,但是我得到一个错误,说它需要在超类中

public static boolean Equals(Card a, Card b) {
    String str1 = a.toString();
    String str2 = b.toString();
    if (str1.equals(str2))
        return true;
    else 
        return false;
}
public static boolean checkDuplicate (Card a, Card b, Card c, Card d, Card e){
    int num = 5;
    boolean bool = true;
    if (Card.Equals(a, b)||Card.Equals(a, c)||Card.Equals(a, d)||Card.Equals(a, e)||
    Card.Equals(b, c)||Card.Equals(b, d)||Card.Equals(b, e)||Card.Equals(c, d)||
    Card.Equals(c, e)||Card.Equals(d, e)); num--;
    if (num == 5)
        bool = false;
    else
        bool = true;
    return bool;
}

您正在使用Object.class的toString方法获取卡的字符串表示形式

toString的默认实现包含对象的哈希。由于您有两个不同的卡对象,因此这些对象的toString方法会产生不同的输出

更好的方法是在Card类中实现equals。然后你可以检查a.equalsb是否相等

如果你想知道如何实现Card.equals,你应该发布Card类的源代码