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#中,由于显式接口实现,即使已知编译时类型实现接口,对接口类型的强制转换也会产生影响.如果有人关心,我可以提供更多细节,但我只是想把它扔出去. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |