加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么首先强制转换为Closeable?

发布时间:2020-12-15 04:52:46 所属栏目:Java 来源:网络整理
导读:在阅读一些 Java源代码时,我遇到了这一行: ((Closeable) some_obj).close(); some_obj显然是实现Closeable接口的类的实例.我的问题是,为什么他们在调用close()之前首先将some_obj强制转换为Closeable. 我不能这样做 some_obj.close(); 解决方法 假设some_ob
在阅读一些 Java源代码时,我遇到了这一行:

((Closeable) some_obj).close();

some_obj显然是实现Closeable接口的类的实例.我的问题是,为什么他们在调用close()之前首先将some_obj强制转换为Closeable.
我不能这样做

some_obj.close();

解决方法

假设some_obj的编译时类型实现了Closeable,那么是的,你可以.

如果你有一个你知道实现的对象是Closeable,但是编译时类型更通用(最明显的例子是Object)或者“不同”(例如不同的接口),你只需要这个.

同样值得关注的是,在C#中,由于显式接口实现,即使已知编译时类型实现接口,对接口类型的强制转换也会产生影响.如果有人关心,我可以提供更多细节,但我只是想把它扔出去.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读