wuyiccc
V2EX  ›  Java

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

  •  
  •   wuyiccc · Dec 21, 2024 · 3727 views
    This topic created in 531 days ago, the information mentioned may be changed or developed.
    一看到 Java 自限定泛型,就感觉似懂非懂,从概念上能理解了,但是一看到具体的应用,总感觉脑子不好使
    简简单单的一行代码,感觉脑子形成不了直观的印象

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