Object[] array = new Object[]{};
System.out.println((array instanceof Serializable));//passed
System.out.println((array instanceof Cloneable));//passed
Этот код компилируется и запускается. Выход:
true
true
Однако этот код не компилируется:
System.out.println((array instanceof Iterable));//not passed
Отчет компилятора Eclipse сообщает:
Несовместимые типы условных операндов Object [] и Iterable
Я обнаружил, что массивы можно сравнивать только с интерфейсом Serializable
и Cloneable
при использовании операции instanceof
. Может кто-нибудь сказать мне, почему?