Java 番石榴可选字符串或带前缀

Java 番石榴可选字符串或带前缀,java,guava,code-cleanup,Java,Guava,Code Cleanup,我有下面的示例代码 public String getAliasSQL() { StringBuilder builder = new StringBuilder(); if (field.getAlias().isPresent()) { builder.append(" AS "); builder.append(field.getAlias().get()); } return builder.toString(); } @

我有下面的示例代码

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();
}
但是以更可读的方式,它仍然是干净的代码

field.getAlias().transform(new Function(String, String) {
    @Override
    public String apply(String alias) {
        return " AS " + alias;
    }
}).or(""); 
这当然是冗长的,但这是由于Java8之前缺少lambda造成的。有了Java8,它就变成了

field.getAlias().transform(alias -> " AS " + alias).or("");
这当然是冗长的,但这是由于Java8之前缺少lambda造成的。有了Java8,它就变成了

field.getAlias().transform(alias -> " AS " + alias).or("");
这当然是冗长的,但这是由于Java8之前缺少lambda造成的。有了Java8,它就变成了

field.getAlias().transform(alias -> " AS " + alias).or("");
这当然是冗长的,但这是由于Java8之前缺少lambda造成的。有了Java8,它就变成了

field.getAlias().transform(alias -> " AS " + alias).or("");