当尝试比较作为参数传递的两个对象时:首先作为对象,第二个作为对象数组(相同类型).得到错误Incompatible conditional operand types Room and allRooms[].我试图循环迭代,while直到thisRoomType不等于某个对象rooms.怎么解决?
public abstract class Room { ...}
public class LightRoom extends Room {...}
public class DarkRoom extends Room {...}
Run Code Online (Sandbox Code Playgroud)
呼叫者:
release(thisRoomType, rooms)
Run Code Online (Sandbox Code Playgroud)
带参数
private Room thisRoomType = this; // is defined in DarkRoom and LightRoom
private Room[] rooms; // is defined in DarkRoom and LightRoom
Run Code Online (Sandbox Code Playgroud)
在方法中:
public synchronized void release( Room thisRoom, Room[] allRooms) {
try {
int j = 0;
while(thisRoom instanceof allRooms[j]){
jj++;
}
int nextRoom = jj;
...
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
while (j < allRooms.length && thisRoom.getClass().equals(allRooms[j].getClass()))
Run Code Online (Sandbox Code Playgroud)