如何比较从两种不同方法返回的两个值? Java
How to compare two values which are returned from two different methods? Java
情况如下:
我有两种不同的方法 class,
int getBoardPositionValue(int i, int j){ //from class Board
return gameBoard[i][j];
}
int getCoinNumber(){ //from class Coin
return coinNumber;
}
我正在尝试比较这两个值。但是,我不确定比较它们的正确方法是什么。
board.getBoardPositionValue(i, j)==coin.getCoinNumber()
或
board.getBoardPositionValue(i, j).equals(coin.getCoinNumber())
或
还有其他办法吗?
谢谢!
如果比较引用 (Objects
),则使用 .equals()
,但如果比较原始类型 (int
、float
、double
等。 ..) 你应该使用 ==
。
在您的情况下,您似乎在比较 ints
,因此您可以毫无问题地使用 ==
。
( board.getBoardPositionValue(i, j) == coin.getCoinNumber()
)
进一步:如果你想检查两个 Object
是否 相同 那么你可以使用 ==
,但如果你想检查它们内容 你会想要使用 .equals()
。例如,使用相等运算符 (==
) 而不是 .equals()
方法检查两个 Strings
是否相等是错误的。
查看此以了解在 String
:
中使用 .equals()
或 ==
的经典示例
String a = "abc";
String b = "abc";
// returns true because a and b points to same string object
if(a == b){
System.out.println("Strings are equal by == because they are cached in the string pool");
}
b = new String("abc");
// returns false as now b isn't a string literal and points to a different object
if(a == b){
System.out.println("String literal and String created with new() are equal using ==");
}else{
System.out.println("String literal and String created with new() are not equal using ==");
}
//both strings are equal because their content is the same
if(a.equals(b)){
System.out.println("Two Strings are equal in Java using the equals() method because their content is the same");
}else{
System.out.println("Two Strings are not equal in Java using the equals() method because their content is the same");
}
对象 A 和对象 B。
A==B
用于检查对象是否相同 reference.If 两个对象都引用相同的地址,它将 return 为真。
A.equals(B)用于比较objects.If两个对象是否有相同的实例变量且实例变量的值是否相等,则return 真的。
如果实例变量具有相同的值,则相同 class 的对象是相等的。
原语:
int = 1;和 int b = 3;
a==b
检查 equality.In 这种情况,它 return 是错误的。
情况如下: 我有两种不同的方法 class,
int getBoardPositionValue(int i, int j){ //from class Board
return gameBoard[i][j];
}
int getCoinNumber(){ //from class Coin
return coinNumber;
}
我正在尝试比较这两个值。但是,我不确定比较它们的正确方法是什么。
board.getBoardPositionValue(i, j)==coin.getCoinNumber()
或
board.getBoardPositionValue(i, j).equals(coin.getCoinNumber())
或 还有其他办法吗?
谢谢!
如果比较引用 (Objects
),则使用 .equals()
,但如果比较原始类型 (int
、float
、double
等。 ..) 你应该使用 ==
。
在您的情况下,您似乎在比较 ints
,因此您可以毫无问题地使用 ==
。
( board.getBoardPositionValue(i, j) == coin.getCoinNumber()
)
进一步:如果你想检查两个 Object
是否 相同 那么你可以使用 ==
,但如果你想检查它们内容 你会想要使用 .equals()
。例如,使用相等运算符 (==
) 而不是 .equals()
方法检查两个 Strings
是否相等是错误的。
查看此以了解在 String
:
.equals()
或 ==
的经典示例
String a = "abc";
String b = "abc";
// returns true because a and b points to same string object
if(a == b){
System.out.println("Strings are equal by == because they are cached in the string pool");
}
b = new String("abc");
// returns false as now b isn't a string literal and points to a different object
if(a == b){
System.out.println("String literal and String created with new() are equal using ==");
}else{
System.out.println("String literal and String created with new() are not equal using ==");
}
//both strings are equal because their content is the same
if(a.equals(b)){
System.out.println("Two Strings are equal in Java using the equals() method because their content is the same");
}else{
System.out.println("Two Strings are not equal in Java using the equals() method because their content is the same");
}
对象 A 和对象 B。
A==B
用于检查对象是否相同 reference.If 两个对象都引用相同的地址,它将 return 为真。
A.equals(B)用于比较objects.If两个对象是否有相同的实例变量且实例变量的值是否相等,则return 真的。 如果实例变量具有相同的值,则相同 class 的对象是相等的。
原语:
int = 1;和 int b = 3;
a==b
检查 equality.In 这种情况,它 return 是错误的。