【问题标题】:Using the Java Guava library, how to create a ImmutableSortedSet using a Builder?使用 Java Guava 库,如何使用 Builder 创建 ImmutableSortedSet?
【发布时间】:2011-06-15 18:59:56
【问题描述】:

我确定这是一个非常简单的问题,但请看下面的代码示例:

final ImmutableSortedSet<String> notOk = ImmutableSortedSet.naturalOrder().build();         
final ImmutableSortedSet<String> ok = new ImmutableSortedSet.Builder<String>(Ordering.natural()).build();
final ImmutableList<String> typicalGuava = ImmutableList.of("one", "two");

我只是想知道在第一个示例中使用 naturalOrder() 方法的正确方法是什么?在该示例中,Java 无法推断类型,因此您会收到“类型不匹配”错误。

【问题讨论】:

    标签: java generics types guava type-inference


    【解决方案1】:

    通过一系列这样的链式调用,编译器无法推断调用 naturalOrder() 的类型参数,因为它的结果没有立即分配给它可以用于推断的东西。

    你可以写

    ImmutableSortedSet<String> ok = ImmutableSortedSet.<String>naturalOrder().build();
    

    ImmutableSortedSet.Builder<String> builder = ImmutableSortedSet.naturalOrder();
    // ...
    ImmutableSortedSet<String> ok = builder.build();
    

    【讨论】:

      【解决方案2】:

      这样做:

      final ImmutableSortedSet<String> nowOk = ImmutableSortedSet.<String>naturalOrder().build();
      

      【讨论】:

        猜你喜欢
        • 2012-06-28
        • 1970-01-01
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多