一看到 Java 自限定泛型,就感觉似懂非懂,从概念上能理解了,但是一看到具体的应用,总感觉脑子不好使

49 天前
 wuyiccc
一看到 Java 自限定泛型,就感觉似懂非懂,从概念上能理解了,但是一看到具体的应用,总感觉脑子不好使
简简单单的一行代码,感觉脑子形成不了直观的印象

public interface Constant<T extends Constant<T>>
1782 次点击
所在节点    Java
6 条回复
kongkongye
49 天前
大脑打结
agagega
49 天前
不懂 Java ,这个是类似 C++的 CRTP 吗?就是 B 继承自 A<B>,这样来复用 A 里的实现(依赖 B 的某些方法)
wuyiccc
49 天前
@agagega 好像是这个意思
fgwmlhdkkkw
49 天前
你要求你的朋友要有和你一样的品位。
billccn
49 天前
在 Java 里面这么写最常见的是用来模拟一个 Self 类型。比如说你要在这个接口里做一个 chainable 方法(就是 return this 的方法),它的默认返回类型是接口本身,那实现类型就丢失了,后面就不好 chain 了。这个写法就是提示你把 T 设置成为实现的类型,这样就可以返回 T 这个类型。
netabare
48 天前
你把它理解为 Self 类型的模拟就行了。感觉 Java 就喜欢制造一些很奇怪的术语,例如把好好的协变逆变叫成 PECS 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1099337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX