情况如下: 我有两个不同类的方法,
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())
或 还有其他办法吗?
谢谢!
答案 0 :(得分:3)
如果您比较引用(Objects
),请使用.equals()
,但如果您比较基本类型(int
,float
,double
等... )你应该使用==
。
在您的情况下,您似乎正在比较ints
,因此您可以毫无问题地使用==
。(board.getBoardPositionValue(i, j) == coin.getCoinNumber()
)
此外:如果您想检查两个Object
是否相同,那么您可以使用==
,但是如果您想检查他们的内容< / em>您将要使用.equals()
。例如,使用等于运算符(Strings
)而不是==
方法检查两个.equals()
是否相等是错误的。
请查看此内容,了解在.equals()
中使用==
或String
的典型示例:
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");
}
答案 1 :(得分:1)
对象A和对象B.
username = transform.Find ("UsernameInputField/Text").GetComponent<InputField>().text;
password = transform.Find ("PasswordInputField/Text").GetComponent<InputField>().text;
用于检查对象在引用方面是否相同。如果两个对象都引用相同的地址,则返回true。
A.equals(B)用于比较对象的相等性。如果两个对象具有相同的实例变量且实例变量的值相等,则返回true。 如果它们的实例变量具有相同的值,则相同类的对象是相等的。
基元:
int a = 1;和int b = 3;
A==B
检查是否相等。在这种情况下,它返回false。