Java 为什么可以';我在第一个条件中使用类型检查变量作为第二个条件中的类型转换变量吗?

Java 为什么可以';我在第一个条件中使用类型检查变量作为第二个条件中的类型转换变量吗?,java,class,object,casting,type-conversion,Java,Class,Object,Casting,Type Conversion,为什么下面的给定语法错误? 类型的方法未定义 这个很好用- if(a instanceOf A && a.foo()) { ..... } 对于人类来说,很明显a属于a类型,这是因为instanceof检查。但是编译器不是那样工作的,因此您仍然需要将a转换为a转换为人类a类型很明显,因为a检查的实例。尽管编译器不是那样工作的,因此您仍然需要将a强制转换为a以前,只返回true或false,对其操作数的类型没有影响 (或参见等级库预览)。当且仅当检查成功时,您才能够声明一个新的内

为什么下面的给定语法错误?
类型的方法未定义

这个很好用-

if(a instanceOf A && a.foo()) {
.....
}

对于人类来说,很明显
a
属于
a
类型,这是因为
instanceof
检查。但是编译器不是那样工作的,因此您仍然需要将
a
转换为
a
转换为人类
a
类型很明显,因为
a
检查的
实例。尽管编译器不是那样工作的,因此您仍然需要将
a
强制转换为
a

以前,只返回
true
false
,对其操作数的类型没有影响

(或参见等级库预览)。当且仅当检查成功时,您才能够声明一个新的内联变量,该变量将是
instanceof
的目标类型

例如,您的代码如下所示

if(a instanceOf A && ((A)a).foo()) {
.....
}
以前,只返回
true
false
,对其操作数的类型没有影响

(或参见等级库预览)。当且仅当检查成功时,您才能够声明一个新的内联变量,该变量将是
instanceof
的目标类型

例如,您的代码如下所示

if(a instanceOf A && ((A)a).foo()) {
.....
}
if(a instanceof A actual && actual.foo()) {
    // ...
}