TableView reloadData vs. beginUpdates & amp; endUpdates

оператор instanceof обеспечивает проверку типа времени выполнения. Например, если у вас есть класс Food и два подтипа Bread4 и Bread5, то:

static void method(Food a) {
   Bread4 b = (Bread4) a;
   System.out.println("Downcasting performed"); 
}

вызывает этот метод, например:

Food four = new Bread4();
Food five = new Bread5();
Bread4.method(four); //the cast inside is done to Bread4, therefore this would work
Bread4.method(five); //the object of type Bread5 will be cast to Bread4 -> ClassCastException

Чтобы этого избежать, используйте поэтому оператор instanceof

static void method(Food a) {
   if (a instanceof Bread4) {
       Bread4 b = (Bread4) a;
       System.out.println("Downcasting performed"); 
   }
}

, если вы вызываете

Bread4.method(five)

, проверка возвращает false, поэтому не возникает ClassCastException.

Надеюсь, что это ответит на ваш вопрос ,

30
задан Cœur 6 July 2018 в 11:58
поделиться