表达式(B) is 类型(T)
- 如果B的编译类型和T相同,而且存在从B编译时的类型到T的隐式引用转换或者装箱转换,则其具体规则如下。
- 如果B是引用类型,则运算结果和B!=null等效。
- 如果B是值类型,则运算结果为true。
- 如果B的编译类型和T不同,而且存在从B编译时的类型到T的隐式引用转换或者拆箱转换,则其具体规则如下。
- 如果B的值是null,则运算结果是false。
- 如果B的值不是null,假设R是B引用实例的运行类型:如果R和T的类型 相同,或R为引用类型并且存在从R到T的隐式引用转换,或R是值类型并且T是R实现了的接口类型,则运算结果是true;否则运算结果为false