Как использовать instanceof в Java? - PullRequest
0 голосов
/ 28 марта 2019

Итак, у меня есть arrayList с комнатами, и я заставляю пользователя помещать в комнату, которую они ищут, я собираю это как строку и затем пытаюсь использовать instanceOf, чтобы сопоставить его с именами классов Java, но не могу сделать это из-за сравнения строки с классом Java.

Также я записываю ответ в операторе switch, чтобы убедиться, что классы написаны правильно, а что нет. просто не знаю, как добраться до arrayList и извлечь класс, который они ищут.

public static void serachRooms(ArrayList<Room> rooms) {
        int option = 0;
        String temp = "";
        boolean flag = false;
        do {
            System.out.println("please Enter What room Type you would like:"
                    + "\nNormal Room = 1"
                    + "\nComputer Room = 2"
                    + "\nBiology Lab = 3"
                    + "\nBoard Room = 4"
                    + "\nYou must choose one!");
            option = input.nextInt();
            if (option == 1 || option == 2 || option == 3 || option == 4) {
                flag = true;
            }
        } while (!flag);
        switch (option) {
            case 1:
                temp = "BiologyLab";
                break;
            case 2:
                temp = "BoardRoom";
                break;
            case 3:
                temp = "ComputerRoom";
                break;
            case 4:
                temp = "Room";
                break;
        }
        for (Room room : rooms) {
            if (temp instanceof BiologyLab) {

            }
        }
    }

1 Ответ

1 голос
/ 28 марта 2019

instanceof - это нечто особенное, что связано с типами и наследованием . Ознакомьтесь с документацией по Java .

В вашем случае вы хотите сравнить строку temp со строкой "BiologyLab". Просто используйте

if ("BiologyLab".equals(temp)) { 
    ...
}

и проверьте Как сравнивать строки в Java для получения дополнительной информации.

...