比较两个返回值

如何比较我的方法中的两个返回值? 因为当我在我的代码中执行此操作并且我期望返回值相同时,它们会进行不同的比较。 这是我的代码:

public static void Card_Initialization(){ Red_Dog c1 = new Red_Dog(); Red_Dog c2 = new Red_Dog(); Cards_Match(c1); System.out.println(card_num+card_suit); Cards_Match(c2); System.out.println(card_num+card_suit); System.out.println(Cards_Match(c1) == Cards_Match(c2));//to check really if it is equal } public static int Cards_Match(Red_Dog rd){ card = (int)(Math.random() * deck.length); if(card >= 0 && card = 4 && card = 8 && card = 12 && card = 16 && card = 20 && card = 24 && card = 28 && card = 32 && card = 36 && card = 40 && card = 44 && card = 48 && card <=51) { card_num = cards[12]; } if(card % 4 == 0) { card_suit = suits[0]; } else if(card % 4 == 1) { card_suit = suits[1]; } else if(card % 4 == 2) { card_suit = suits[2]; } else if(card % 4 == 3) { card_suit = suits[3]; } return card; } 

结果:第一次运行:

AceSpades AceSpades是假的

第二轮:

AceSpades AceSpades是真的

我建议您不要传递RedDod对象然后忽略,而是设置非静态方法,只设置该类的字段。

 import java.util.Random; public class RedDog implements Comparable { private final Suit suit; private final Face face; enum Suit { CLUB, SPADES, DIAMONDS, HEARTS } static final Suit[] SUITS = Suit.values(); enum Face { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING } static final Face[] FACES = Face.values(); static final Random RAND = new Random(); public RedDog(Suit suit, Face face) { this.suit = suit; this.face = face; } public static RedDog random() { return new RedDog(SUITS[RAND.nextInt(SUITS.length)], FACES[RAND.nextInt(FACES.length)]); } public static void main(String[] args) { RedDog c1 = RedDog.random(); RedDog c2 = RedDog.random(); System.out.println(c1 + " and " + c2 + " equals is " + c1.equals(c2)); } @Override public boolean equals(Object o) { // generated by my IDE if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; RedDog redDog = (RedDog) o; if (suit != redDog.suit) return false; return face == redDog.face; } @Override public int hashCode() { // generated by my IDE int result = suit != null ? suit.hashCode() : 0; result = 31 * result + (face != null ? face.hashCode() : 0); return result; } @Override public String toString() { // generated by my IDE return "RedDog{" + "face=" + face + ", suit=" + suit + '}'; } @Override public int compareTo(RedDog r) { int cmp = suit.compareTo(r.suit); if (cmp == 0) cmp = rank.compareTo(r.rank); return cmp; } } 

版画

 RedDog{face=KING, suit=SPADES} and RedDog{face=QUEEN, suit=DIAMONDS} equals is false