System.out.print("Enter Room Number: ");
int a4 = scan.nextInt();
scan.nextLine();
booking[count]= new RoomBooking (a1,a2,a3,a4);
count++;
if (/* if the object is an instance of RoomBooking(subclass) */) {
for (int y = 0; y < count; y++) {
if (a4 == (((RoomBooking) booking[y]).getRoomNumber())) {
System.out.print("Used number, Please Try again");
}
}
}
“如果对象是RoomBooking(子类)的实例” 我怎么能用java编写呢?
对不起,如果没有意义,还在学习。
如果你需要知道发生了什么,有2个班级。 预订(正常预订)和RoomBooking(延长预订).. 由于我们必须创建一个存储两者混合的数组,我需要检查对象(a4)是否是RoomBooking的实例,以便我可以比较数字。
我试过if((RoomBooking.class.isInstance(a4))){...} 但它不起作用。
答案 0 :(得分:20)
if (object instanceof RoomBooking) ...
答案 1 :(得分:7)
isAssignableFrom
中还有Class
方法。
if(CabinBooking.class.isAssignableFrom(object.getClass())
我更喜欢@assylias
建议的方法,因为它甚至可以在object == null
中工作,而isAssignableFrom
如果参数为null则会引发错误。因此,您必须检查实例是否为空。
if(object instanceof CabinBooking.class)