我有以下示例代码
public String getAliasSQL() {
StringBuilder builder = new StringBuilder();
if (field.getAlias().isPresent()) {
builder.append(" AS ");
builder.append(field.getAlias().get());
}
return builder.toString();
}
@Override
public Optional<String> getAlias() {
return field.getAlias();
}
我想知道是否可以使用 guava or() 方法或其他简单技巧通过一行语句来完成此操作。
类似
public String getAliasSQL() {
return field.getAlias().or("").prefixIfNotEmpty(" AS ");
}
但是以一种更易读的方式,所以它仍然是干净的代码。
最佳答案
field.getAlias().transform(new Function(String, String) {
@Override
public String apply(String alias) {
return " AS " + alias;
}
}).or("");
这当然很冗长,但这是由于 Java 8 之前缺少 lambda 造成的。使用 Java 8,它就变成了
field.getAlias().transform(alias -> " AS " + alias).or("");
关于java - Guava 可选字符串或带前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26083251/