首先,这些是整数,而不是整数。 我想从另一个类获得一个变量,并把它比作一个值,像这样:Java方法返回的int不能与另一个int进行比较(Android Studio)
Log.v("xx", "" + boardAdap.getPieceNumber());
int pieceNumberInt = boardAdap.pieceNumber;
if (pieceNumberInt == 32) {
Log.v("xx", "int comparison worked");
}
int pieceNumberMethod = boardAdap.getPieceNumber();
if (pieceNumberMethod == 32) {
Log.v("xx", "method comparison worked");
}
所以,我想从boardAdap类pieceNumber变量,并检查它是否等于32。如果是这样,它会在登录控制台时打印这些东西。
的boardAdap方法:
int pieceNumber;
int pieceNumberIncrement;
public int getPieceNumber() {
for (int i = 0; i < 64; i++) {
if (board.getPiece(Square.squareAt(i)).name() != "NONE") {
this.pieceNumberIncrement++;
}
}
this.pieceNumber = pieceNumberIncrement;
return pieceNumber;
}
此遍历称为广场中的枚举,并且递增pieceNumberIncrement如果该值不为 “NONE”。 然而,当我运行此,输出是:
32
int comparison worked
那么,为什么如果条件失败,第二,如果getPieceNumber()返回一个int?当我使用Integer包装器时,它也失败,或者将pieceNumberMethod转换为一个字符串,然后转换为Integer和其他方法。
另外,我是否应该改变getPieceNumber()来更新pieceNumber来代替,并且只引用那个?
此外,如果pieceNumberMethod以用于像循环:
for (int i = 0; i < pieceNumberMethod; i++) {
}
for循环将永远不会停止。
谢谢!
感谢您快速回答子牙,我会检查这是否有效,如果它工作:) –
是的,这是问题,我忘了重新计数之前,将pieceNumberIncrement重置为0。再次感谢! –
欢迎:) –