gpt4 book ai didi

java - 如何将泛型参数绑定(bind)到特定的List子类?

转载 作者:行者123 更新时间:2023-12-02 06:43:50 25 4
gpt4 key购买 nike

我期望在下面的代码中:

public static <K, D extends List<T>, T> List<Map<K, D>> meth(K k, D d) {
List<Map<K, D>> daBytes = (List<Map<K, D>>)
new ArrayList<Map<K, List<List<Byte>>>>();
// ...
}

编译器找出 DList<List<Byte>>和/或 T<List<Byte> - 并真正摆脱 Actor 阵容。相反,我得到:

Cannot cast from ArrayList<Map<K,List<List<Byte>>>> to List<Map<K,D>>

无论如何我都需要 Actor 阵容。
为什么 ?我想要的是否可能(没有 strategy pattern 解决方法)?

最佳答案

Dmeth调用者指定;你不能强制它成为 meth 中的其他特定类型。如果通过D你的意思是List<List<Byte>> ,那么你应该这样写:

List<Map<K, List<List<Byte>>>> daBytes = new ArrayList<Map<K, List<List<Byte>>>>();

如果您的意思是D随意,那么你应该写

List<Map<K, D>> daBytes = new ArrayList<Map<K, D>>();

关于java - 如何将泛型参数绑定(bind)到特定的List子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18858735/

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