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

java – Object.getClass()方法的签名

发布时间:2020-12-15 08:34:28 所属栏目:Java 来源:网络整理
导读:Object类包含以下方法: public final Class? extends Object getClass(). 为什么这个方法的返回类型是Class? extends Object 解决方法 因为Java缺少 self types.(如果它有它们,那么返回类型将是Class?extends self_type).所以签名只是声明了Class?,它可
Object类包含以下方法:

public final Class<? extends Object> getClass().

为什么这个方法的返回类型是Class<? extends Object>

解决方法

因为Java缺少 self types.(如果它有它们,那么返回类型将是Class<?extends self_type>).所以签名只是声明了Class<?>,它可以做的最好的(下一个),这是不太理想的 – 编译器肯定知道getClass()不返回任何类,而是一个类,它是一个子类型调用getClass()的表达式的静态类型.

因此,我们有这种奇点,其中方法的签名声明Class<?>由于语言的限制,但编译器将返回值视为Class<?扩展TheClass>因为它知道它是安全的,并希望有所帮助:)

PS:你看过Class<? extends Object>因为您在静态类型为Object的表达式上调用了getClass().

(编辑:李大同)

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

    推荐文章
      热点阅读