首先,這些是整數,而不是整數。 我想從另一個類獲得一個變量,並把它比作一個值,像這樣: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。再次感謝! –
歡迎:) –