gpt4 book ai didi

java - 在 Immutables 中执行特定的 Map 实现

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:56 31 4
gpt4 key购买 nike

我正在使用 Immutables Java 库,如何在不使用特定引用的情况下实现特定的 map 实现?

@Immutable
public interface ConfigIF {
Map<String, String> getOptions();
}

如果我使用上面的代码,具体的 Map 是一个 LinkedHashMap

@Immutable
public interface ConfigIF {
TreeMap<String, String> getOptions();
}

如果我使用上面的代码,引用和实现都是 TreeMap

有没有办法将 Map 指定为引用,但将 TreeMap 强制为具体类型?

最佳答案

绝对不是——而且应该被禁止(即:作为用户,您没有任何选项可以改变它)。这不是特定于您的库,而是一般返回 Map 而不是 TreeMap 的任何代码。

换个角度看,如果您返回一个 Map,用户不会期望调用 ceilingEntry(在 TreeMap 中可用) ,但不在 Map 中)通过引用的转换。

java-8 通过它的 Collectors.toXXX 做同样的事情。例如 Collectors.toList 明确地说:

There are no guarantees on the type, mutability, serializability, or thread-safety of the List returned.

这意味着他们可以退回他们认为最合适的任何东西。

关于java - 在 Immutables 中执行特定的 Map 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45287834/

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