9
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 节课。Booking(普通Booking)和RoomBooking(扩展Booking)..由于我们必须创建一个存储两者混合的数组,我需要检查对象(a4)是否是RoomBooking的实例,以便我可以比较数字.


我试过 if ((RoomBooking.class.isInstance(a4))){...} 但它没有用。

4

2 回答 2

23

if (object instanceof RoomBooking) ...

和一个有趣的阅读

于 2012-08-17T23:23:31.030 回答
10

中也有isAssignableFrom方法Class

if(CabinBooking.class.isAssignableFrom(object.getClass())

我更喜欢建议的方法,因为如果参数为空@assylias,它甚至会在object == nullwhile中起作用。isAssignableFrom所以你必须检查实例不为空。

if(object instanceof CabinBooking.class)
于 2012-08-17T23:29:14.507 回答