оператор instanceof в java для сравнения различных классов

Я пытался понять, как работает оператор instanceof в Java, и столкнулся с очень странной проблемой.

public static void main(String[] args) {
    Map m = new HashMap();
    System.out.println("m instanceof Date: " + (m instanceof Date));
}

Приведенный выше оператор возвращает false, как и ожидалось. Однако,

public static void main(String[] args) {
    HashMap m = new HashMap();
    System.out.println("m instanceof Date: " + (m instanceof Date));
}

Это даже не компилируется. Я получаю ошибку

inconvertible types
found   : java.util.HashMap
required : java.util.Date

Что я здесь упускаю? Я использую IntelliJ Idea 11.

10
задан Ankit Dhingra 2 February 2012 в 06:09
поделиться