我最近發現了java 8中的Optional類型,並開始在我的最新項目中使用它。我用它喜歡:Java 8可選用法
public class User{
private int id;
private String email;
private Optional<String> mobile;
public User(int id, String email, Optional<String> mobile){
...
}
public int id(){...}
public int email(){...}
public Optional<String> mobile(){...}
}
今天,我正在探索更多可選的,當我遇到其中明確指出,使用可選的比返回類型其他地方是一個不好的做法帖子來了。從多個來源驗證了這一點後,我改變了我的代碼,如:
public class User{
private int id;
private String email;
private String mobile;
public User(int id, String email, String mobile){
...
}
public int id(){...}
public int email(){...}
public Optional<String> mobile(){
return Optional.ofNullable(mobile);
}
}
這是一個可接受的解決方案嗎?具體來說,我改變了一些方法簽名採取任選到T,然後在方法內我把T轉換爲Optional.ofNullable(t),以便我可以使用像ifPresent,orElse,過濾器,地圖等方法。
你有什麼來源說有可選的作爲一個領域是不好的做法?有什麼缺點? – aioobe
@aioobe請訪問https://stackoverflow.com/questions/23454952/uses-for-java8-optional?rq=1參數是這是一個不好的java練習,我們應該使用方法重載,構造函數重載而不是服用在可選參數中。 – gladiator
是的。這個答案很有意義。 – aioobe