在尝试将Vavr的不可变映射 ( io.vavr.collection.HashMap
) 与java.util.Map
接口一起使用时,我没有设法让代码编译 - 至少不是通过.of()
使用 io.vavr.collection.HashMap
.
本质上,这是我正在使用的 Maven 依赖项:
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr</artifactId>
<version>0.9.2</version>
</dependency>
使用 Java 1.8
这是代码:
import io.vavr.collection.HashMap;
import java.util.Map;
public class EntityKeyMap {
public static final Map<String, String> map =
HashMap.of("key1", "val1", "key2", "val2", "key3", "val3");
private EntityKeyMap() {
}
}
这是我得到的错误:
不兼容的类型。必需的 Map 但 'of' 被推断为 HashMap:不存在类型变量 K、V 的实例,因此 HashMap 符合 Map
任何想法如何分配io.vavr.collection.HashMap
to的实例java.util.Map
?这甚至可能吗?
根据io.vavr.collection.HashMap
文档,它实现了java.util.Map
接口:
https://static.javadoc.io/io.vavr/vavr/0.9.2/io/vavr/collection/HashMap.html
网上有一些似乎可行的例子,比如在这个博客上你可以找到这段代码:
Map<String, String> map1
= HashMap.of("key1", "val1", "key2", "val2", "key3", "val3");