相关疑难解决方法(0)

Java:实例化Google Collection的HashBiMap

我正在使用Eclipse,并且我已经添加了google-collect.1.0-rc2.jar作为引用的库.但不知怎的,这仍然无效:

import com.google.common.collect.HashBiMap;

public class Odp {        
    //...

    HashBiMap<Character, Integer> charOcc =
        HashBiMap<Character, Integer>.create();    
}
Run Code Online (Sandbox Code Playgroud)

Eclipse给出以下错误:

此行有多个标记

  • HashBiMap无法解析
  • Character.Integer无法解析
  • 令牌",","."上的语法错误.预期
  • 令牌"."上的语法错误,删除此令牌
  • 对于类Odp,方法create()未定义

我究竟做错了什么?

其他谷歌的东西,如乔纳,工作得很好.(但乔伊纳不是通用的.)

java bimap guava

5
推荐指数
1
解决办法
2834
查看次数

Google Guava:如何使用ImmutableSortedMap.naturalOrder?

我正在使用Google Guava r08和JDK 1.6.0_23.

我想创建一个ImmutableSortedMap使用构建器.我知道我可以像这样创建构建器:

ImmutableSortedMap.Builder<Integer, String> b1 =
    new ImmutableSortedMap.Builder<Integer, String>(Ordering.natural());
Run Code Online (Sandbox Code Playgroud)

然后使用它来构建地图,例如:

ImmutableSortedMap<Integer, String> map =
    b1.put(1, "one").put(2, "two").put(3, "three").build();
Run Code Online (Sandbox Code Playgroud)

我注意到该类ImmutableSortedMap有一个naturalOrder()返回Builder自然顺序的方法.但是,当我尝试调用此方法时,我会遇到奇怪的错误.例如,这给出了一个奇怪的"预期"错误:

// Does not compile
ImmutableSortedMap.Builder<Integer, String> b2 =
    ImmutableSortedMap<Integer, String>.naturalOrder();
Run Code Online (Sandbox Code Playgroud)

调用该naturalOrder()方法的正确语法是什么?

该方法的API文档提到了一些编译器错误.这与这种方法无关吗?

编辑

MForster的答案很好.但是当放弃仿制药时,我无法"一气呵成":

// Doesn't work, can't infer the types properly
ImmutableSortedMap<Integer, String> map =
    ImmutableSortedMap.naturalOrder().put(1, "one").put(2, "two").put(3, "three").build();
Run Code Online (Sandbox Code Playgroud)

这确实有效:

ImmutableSortedMap<Integer, String> map =
    ImmutableSortedMap.<Integer, String>naturalOrder().put(1, "one").put(2, "two").put(3, "three").build();
Run Code Online (Sandbox Code Playgroud)

java syntax guava

3
推荐指数
2
解决办法
2735
查看次数

标签 统计

guava ×2

java ×2

bimap ×1

syntax ×1