引数として渡された2つのオブジェクトを比較しようとすると、最初はオブジェクトとして、2番目はオブジェクトの配列(同じ種類)として比較されます。エラーIncompatible conditional operand types Room and allRooms[]
を取得しています。私はwhile
まで繰り返して、thisRoomType
までのサイクルは、rooms
のオブジェクトと等しくないようにしようとしています。それを修正するには?instanceofを使用して2つのオブジェクトを比較できません
public abstract class Room { ...}
public class LightRoom extends Room {...}
public class DarkRoom extends Room {...}
発信者:メソッドで
private Room thisRoomType = this; // is defined in DarkRoom and LightRoom
private Room[] rooms; // is defined in DarkRoom and LightRoom
パラメータを持つ
release(thisRoomType, rooms)
:
public synchronized void release(Room thisRoom, Room[] allRooms) {
try {
int j = 0;
while(thisRoom instanceof allRooms[j]){
jj++;
}
int nextRoom = jj;
...
}
}
これが起こるのを待っ 'ArrayIndexOutOfBoundsException'あるに応じて選んでください。 'while'条件に' jj