将Optional.absent()元素添加到Guava中的集合

Vin*_*rat 2 java guava

我在这里找不到诀窍:我想要一个函数来返回一个可选对象列表,这意味着我的列表确实包含了这么多元素,但是其中一些元素无效.

public Optional<String> getMyObjects() {
  List<Optional<String>> result = Lists.newArrayListWithCapacity(2);

  result.add(Optional.of("This value is valid"));
  result.add(Optional.absent()); // Compiler error

  return result;
}
Run Code Online (Sandbox Code Playgroud)

这不编译:

The method add(Optional<String>) in the type List<Optional<String>> is not 
applicable for the arguments (Optional<Object>)
Run Code Online (Sandbox Code Playgroud)

你会怎么说呢?我试过铸造没有成功

Xae*_*ess 7

尝试:

result.add(Optional.<String>absent());
Run Code Online (Sandbox Code Playgroud)

阅读更多有关参数化方法显式类型参数规范的更多信息,请参阅优秀但非官方的Java泛型常见问题解答.