Java 中 Guava 可选对象的条件运算符 7
Conditional operator with Guava's Optional object in Java 7
我想在 Java 7 中使用条件运算符,其中返回的对象是 com.google.common.base.Optional
,像这样:
import com.google.common.base.Optional;
public Optional<String> getFirstElement(String str, String separator) {
final String[] strs = str.split(separator);
return strs.length == 0 ? Optional.absent() : Optional.of(strs[0]);
}
但是,Optional.absent()
的类型是 Optional<?>
而不是 Optional<String>
。关于如何解决这个问题的任何想法?
关于Java7,只需明确指定类型
public Optional<String> getFirstElement(String str, String separator) {
final String[] strs = str.split(separator);
return strs.length == 0 ? Optional.<String>absent() : Optional.of(strs[0]);
}
Optional#absent()
方法是通用的。
在 Java8 中,由于一些改进的类型推断,您的代码将可以正常编译。
我想在 Java 7 中使用条件运算符,其中返回的对象是 com.google.common.base.Optional
,像这样:
import com.google.common.base.Optional;
public Optional<String> getFirstElement(String str, String separator) {
final String[] strs = str.split(separator);
return strs.length == 0 ? Optional.absent() : Optional.of(strs[0]);
}
但是,Optional.absent()
的类型是 Optional<?>
而不是 Optional<String>
。关于如何解决这个问题的任何想法?
关于Java7,只需明确指定类型
public Optional<String> getFirstElement(String str, String separator) {
final String[] strs = str.split(separator);
return strs.length == 0 ? Optional.<String>absent() : Optional.of(strs[0]);
}
Optional#absent()
方法是通用的。
在 Java8 中,由于一些改进的类型推断,您的代码将可以正常编译。