java - 类型转换用括号括起来的原因

标签 java object methods type-conversion

if (obj instanceof String) {
    return (String) obj;
} else {
    return ((BlogPost) obj).getTitle(); 

为什么返回 BlogPost 标题的行需要用括号将引用 objBlogPost 括起来?

最佳答案

假设 obj 的引用与 BlogPost 的类型不同,语句 ((BlogPost) obj) 会强制转换 objBlogPost 类型。没有括号的声明:

(BlogPost) obj.getTitle();

表示:将 getTitle() 的返回值转换为 BlogPost。带括号的声明:

((BlogPost) obj).getTitle();

表示:将 obj 转换为 BlogPost 类型,然后在 BlogPost< 类型的实例上调用方法 getTitle()/.

关于java - 类型转换用括号括起来的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534551/

相关文章:

javascript - 如何在未知深度的物体中找到值(value)?

c++ - 如何调用作为参数给出的 C++ 类方法?

java - 删除方法,从对象数组中删除对象

java - Sun 的 Java SSL 实现正在泄漏内存?

java - Maven 项目找不到我的库

java - Java 8 中字符串到方法的映射,传递参数

java - 动态初始化对象

java - 使用 JComboBox - 为什么 getSelectedItem() 可以工作并且 Java 对象?

java - new Foo(bar) {public void baz(){....} }; 是什么意思?在Java中是什么意思?

java - 嵌套异常与现代(Java SE 7)异常