我有以下示例代码
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或()方法或其他简单技巧使用单行语句来执行此操作。
像
这样的东西public String getAliasSQL() {
return field.getAlias().or("").prefixIfNotEmpty(" AS ");
}
但是以更易读的方式,它仍然是干净的代码。
答案 0 :(得分:3)
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("");