Java 如何实例化番石榴EnumBiMap?

Java 如何实例化番石榴EnumBiMap?,java,guava,Java,Guava,回答/编辑: 好的,我刚刚意识到我试图错误地使用EnumBiMap。我想要一个不允许空值的bi映射,我猜Guava库没有空值。我看了,但它应该是静态的,具有不变的值。我想在我把任何东西放入HashBiMap之前,我只需要检查null 也就是说,以下是实例化/使用EnumBiMap的方法: 给定枚举: enum Test{ VAL; } 使用: Map m=EnumBiMap.create(Test.class,Test.class); m、 put(Test.VAL,Test.VA

回答/编辑:

好的,我刚刚意识到我试图错误地使用EnumBiMap。我想要一个不允许空值的bi映射,我猜Guava库没有空值。我看了,但它应该是静态的,具有不变的值。我想在我把任何东西放入HashBiMap之前,我只需要检查null

也就是说,以下是实例化/使用EnumBiMap的方法:

给定枚举:

enum Test{
    VAL;
}  
使用:

Map m=EnumBiMap.create(Test.class,Test.class);
m、 put(Test.VAL,Test.VAL);
或者,如果您想要更通用的EnumBiMap,它支持任何枚举类型:

Map<Enum, Enum> m = EnumBiMap.create(Enum.class, Enum.class);
m.put(Test.VAL, Test2.VAL2);
Map m=EnumBiMap.create(Enum.class,Enum.class);
m、 put(Test.VAL,Test2.VAL2);

原始问题:

我查阅了文档和web,但找不到任何实现EnumBiMap类的示例。它的行为与HashBiMap不同,我可以很容易地实例化它。以下是我尝试过的-这些都不能为我编译:

Map<Integer, String> m = EnumBiMap.create();
Map m=EnumBiMap.create();
…类似于此处建议的内容:

还尝试:

Map<Integer, String> m = EnumBiMap.<Integer, String>create();
Map m=EnumBiMap.create();
..与此处的格式类似:

以及:

Map m=EnumBiMap.create(Integer.class,String.class);
是否有人成功实现了EnumBiMap或看到过任何示例?如果是,怎么做?

你的意思是(番石榴):

Map m=EnumBiMap.create(Test.class,Test.class);
m、 put(Test.VAL,Test.VAL);
请注意签名:

<K extends Enum<K>, V extends Enum<V>> EnumBiMap<K, V> create(Class<K> keyType, Class<V> valueType)
EnumBiMap创建(类keyType、类valueType)
因此
Integer
String
不适用于K或V

Map<Integer, String> m = EnumBiMap.create(Integer.class, String.class);
Map<Test, Test> m = EnumBiMap.create(Test.class, Test.class);
m.put(Test.VAL, Test.VAL);
<K extends Enum<K>, V extends Enum<V>> EnumBiMap<K, V> create(Class<K> keyType, Class<V> valueType)