gpt4 book ai didi

java - 如何限制通用类型的接口(interface)只接受实现类

转载 作者:行者123 更新时间:2023-11-29 04:34:06 25 4
gpt4 key购买 nike

我的情况不同,但作为一个例子

public interface Comparable<T> 

允许我说:

public class MyType implements Comparable<OtherType>

但这很少是您想要实现的。

有没有办法强制我说:

public class MyType implements Comparable<MyType>

我得到的最接近的是:

public interface Comparable<T extends Comparable<T>>

这只能部分起作用,因为它不允许 OtherType 如果它本身不具有可比性,但会允许:

public class MyType implements Comparable<Integer>

因为它满足条件。

最佳答案

这在 Java 中是不可能的。

考虑是否可以要求 Comparable 的类型参数与实现类相同。那么如果你有一个 class Foo implements Comparable<Foo> , 然后还有一个 class Bar extends Foo , Bar也会自动执行 Comparable<Foo>顺便说一句,Java 中的继承是有效的。但这将违反实现类与类型参数相同的约束,如 Bar。不执行 Comparable<Bar> (你甚至不能明确地让 Bar 实现 Comparable<Bar> ,因为一个类不能实现具有两个不同类型参数的泛型类型)。

关于java - 如何限制通用类型的接口(interface)只接受实现类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com