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 сообщает:
Incompatible conditional operand types Object[] and Iterable
Я обнаружил, что массивы можно сравнивать только между интерфейсами Serializable
и Cloneable
при использовании операции instanceof
. Может кто-нибудь сказать мне, почему?