gpt4 book ai didi

java - 具有 Function 值的 UnmodifiableMap 无法编译

转载 作者:行者123 更新时间:2023-11-29 07:40:46 25 4
gpt4 key购买 nike

我有一个引用:

public final static LinkedHashMap<String, Function<OrderBean, String>> DELEGATES;

我初始化如下:

static {
LinkedHashMap<String, Function<OrderBean, String>> tmp = new LinkedHashMap<>();
tmp.put(OrderCols.FIELD1, OrderBean::getFIELD1);
tmp.put(OrderCols.FIELD2, OrderBean::getFIELD2);
...
DELEGATES = Collections.unmodifiableMap(tmp);
}

在静态 block 的最后一行(分配给 DELEGATES),我得到了这个编译器错误:

错误:(64, 48) java:类型不兼容:不存在类型变量 K、V 的实例,因此 java.util.Map 符合 java.util.LinkedHashMap>

我是不是搞砸了?还是不可修改的 View 不喜欢函数类型?

最佳答案

不,你的问题是,而不是

public final static LinkedHashMap<String, Function<OrderBean, String>> DELEGATES;

你应该有

public final static Map<String, Function<OrderBean, String>> DELEGATES;

...因为unmodifiableMap 返回一个裸Map 实现。 (不过,支持数据结构仍将是 LinkedHashMap。)

关于java - 具有 Function<X, Y> 值的 UnmodifiableMap 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30488019/

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