0

我正在尝试通过以下方法使用来自番石榴的 Null-Objects:

private void display(Optional<String> message) {
  ...
}

我调用方法 display(..) 的方法如下所示:

if(...) {
  display(Optional.of("hello");
} else {
  display(Optional.absent());
}

现在我收到以下编译器错误:

The method display(Optional<String>) in the type TokenServlet is not
applicable for the arguments (Optional<Object>)

我发现的唯一编译解决方法是使用

Optional.fromNullable((String) null)

代替

Optional.absent()

如果我在非泛型上下文中使用 Optionals,真的没有其他可能性吗?

4

2 回答 2

3

你可以这样做:

display(Optional.<String> absent());
于 2014-09-24T13:48:29.657 回答
0

我认为您尝试将无效参数传递给方法。您必须将其包装在方法中。它将解决问题。

private void display(String message) {
 Optional<String> optionalMessage=Optional.fromNullable(message);
  ...
}
于 2014-09-24T13:43:10.440 回答