2014-09-28 27 views
0

我有下面的代碼示例番石榴可選字符串或前綴

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(); 
} 

而且我想知道是否可以使用番石榴或()方法或另一種簡單的一招一一行語句來做到這一點。

喜歡的東西

public String getAliasSQL() { 
    return field.getAlias().or("").prefixIfNotEmpty(" AS "); 
} 

但是,在一個更可讀的方式,以便它仍然是乾淨的代碼。

回答

3
field.getAlias().transform(new Function(String, String) { 
    @Override 
    public String apply(String alias) { 
     return " AS " + alias; 
    } 
}).or(""); 

這是冗長的,當然,但由於缺乏拉姆達的Java 8之前引起的與Java 8,它成爲

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