V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuyiccc
V2EX  ›  Java

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

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

    public interface Constant<T extends Constant<T>>
    6 条回复    2024-12-22 18:21:30 +08:00
    kongkongye
        1
    kongkongye  
       1 天前 via iPhone
    大脑打结
    agagega
        2
    agagega  
       1 天前 via iPhone   ❤️ 1
    不懂 Java ,这个是类似 C++的 CRTP 吗?就是 B 继承自 A<B>,这样来复用 A 里的实现(依赖 B 的某些方法)
    wuyiccc
        3
    wuyiccc  
    OP
       1 天前
    @agagega 好像是这个意思
    fgwmlhdkkkw
        4
    fgwmlhdkkkw  
       1 天前
    你要求你的朋友要有和你一样的品位。
    billccn
        5
    billccn  
       1 天前 via Android   ❤️ 1
    在 Java 里面这么写最常见的是用来模拟一个 Self 类型。比如说你要在这个接口里做一个 chainable 方法(就是 return this 的方法),它的默认返回类型是接口本身,那实现类型就丢失了,后面就不好 chain 了。这个写法就是提示你把 T 设置成为实现的类型,这样就可以返回 T 这个类型。
    netabare
        6
    netabare  
       13 小时 37 分钟前 via iPhone
    你把它理解为 Self 类型的模拟就行了。感觉 Java 就喜欢制造一些很奇怪的术语,例如把好好的协变逆变叫成 PECS 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1258 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:59 · PVG 07:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.