gpt4 book ai didi

具有 1 个类型参数和 2 个约束的 Java 泛型

转载 作者:太空狗 更新时间:2023-10-29 22:35:52 25 4
gpt4 key购买 nike

我知道可以向通用类定义添加多个约束,例如:

class Example<I extends Object & Comparable<Object>>{}

但我想要一个泛型 ( MyGeneric ),它将另一个泛型 ( SomeGeneric<T> ) 作为其类型参数,并约束该泛型(例如 T )的类型参数 ( T extends SomeClass )。

重要的,我需要知道两者的类型 SomeGenericSomeClass从类内部(GT 都需要绑定(bind))。例如,想象这样的事情:

class MyGeneric<G extends SomeGeneric<T>, T extends SomeClass>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}

问题:上面的方法有效,但我更希望我的类只有一个类型参数,这样可以让我的类的实现者的生活更轻松。有办法做到这一点吗?

像这样的东西会很好(但这个特定的代码是不正确的):

class MyGeneric<G extends SomeGeneric<T extends SomeClass>>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}

如果我不清楚,我会很乐意尝试阐明我的意图。

最佳答案

这看起来不可能实现。

通过删除一个类型变量并尝试定义它,将类型定义减少一个顺序后,

class G extends SomeGeneric<T extends SomeClass>{}

无法编译,因为类型参数 T 未绑定(bind)到已定义的类型参数。但是,这有效 -

class G<T extends SomeClass> extends SomeGeneric<T>{}

因此,我推断使用两种类型进行参数化的唯一方法是预先声明它们。

关于具有 1 个类型参数和 2 个约束的 Java 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564373/

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