java - 为什么我不能在第一个条件中使用类型检查变量作为第二个条件中的类型转换变量?

标签 java class object casting type-conversion

class A
{
    boolean foo() {
        return true;
    }
}

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

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

这很好用-

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

最佳答案

对于人类来说,由于 instanceof 检查,很明显 a 属于 A 类型。但编译器不会那样工作,因此您仍然需要将 a 转换为 A

关于java - 为什么我不能在第一个条件中使用类型检查变量作为第二个条件中的类型转换变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61082854/

相关文章:

java - JPA Eclipselink NamedQuery 与查询 COUNT

java - 相同的java代码,两个.class文件的类加载问题?

c++ - C++中类字段对齐与对象实例对齐的关系?

ios - 如何在 swift 中为 "ObjectMapper"库创建包装函数

javascript - 如何解析(无限)嵌套对象符号?

python - Python 是否在对象实例化时复制值或引用?

java - 可序列化的类无法反序列化

java - 如何用 Java (Android) 编写这个 Objective-C Hmac 签名函数?

java - 使用 JAXB 不显示元素

delphi - 如何实现索引[]默认属性