Мой вопрос в том, что, поскольку new Test()
не является ни подклассом String
, ни самой строкой, то почему компиляция instanceof
завершается неудачно? Разве он не должен возвращать false.
public class Test{
public static void main(String[] args) {
//Compiles fails
System.out.println(new Test() instanceof String);
//compiles fine but run time class cast exception.
Test = (Test) new Object();;
}
}
Теперь я отредактировал свой пост. Вот что я действительно хочу знать, почему такая разница. Почему компиляция не дает сбой при кастинге, хотя должна
Object t=new Test(); if(t instanceof String ){ }
если вы скажете new Test() instanceof String, то вы уже знаете, что это не строка. instanceof работает, если вы не уверены, к какому типу относится объект - person XtremeBaumer   schedule 06.03.2017