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 を拡張したもの) .両方の混合物を格納する 1 つの配列を作成する必要があるため、オブジェクト (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())

パラメータがnullの場合、エラーがスローされる間@assyliasでも機能するため、提案された方法をお勧めします。したがって、インスタンスがnullでないことを確認する必要があります。object == nullisAssignableFrom

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