亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為返回類型“Optional<T>”編寫 Javadoc

為返回類型“Optional<T>”編寫 Javadoc

喵喔喔 2023-03-09 17:22:42
我目前正在為我工作場所使用的 SOAP 網絡服務編寫 Java-API。Web 服務類是使用Axis2生成的,它們可以返回null. 因為我不想null在我的業務邏輯級別處理 -references,所以我使用Optional<>as 返回類型。例如:/** * Reads account-data to given accountId.  *  * @param accountId *          the primary key of table 'account' * @return  the account wrapped as an Optional<>, if an account with primary key 'accountId' exists; Optional.empty(), else */public Optional<Account> readAccount(long accountId) throws RemoteException, ServiceFaultException {        // prepare SOAP-Request        ReadAccount request = new ReadAccount();        request.setAccountId(accountId);        // execute SOAP-Request        ReadAccountResponse response = accountService.readAccount(request);        // process Response        Optional<Account> account = Optional.ofNullable(response.getAccount());        return account;    }上面的方法執行一個網絡服務操作來搜索數據庫中的一些帳戶記錄。如果沒有找到具有匹配參數的帳戶accountId,則方法調用response.getAccount()可以返回null。是否有更簡潔的方法來編寫 Javadoc @return?特別是對于短語“wrapped as an Optional<>”?
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

為什么不說jdk是怎么做的呢?例如Stream::reduce

@return 一個描述歸約結果的{@link Optional}

在您的情況下,它將是:

描述帳戶的可選。


查看完整回答
反對 回復 2023-03-09
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

我建議將您的返回語句 javadoc 簡化為以下內容:


/**

 * Reads account-data to given accountId. 

 * 

 * @param accountId

 *          the primary key of table 'account'

 * @return the account wrapped in an {@link Optional}

 */

public Optional<Account> readAccount(long accountId) throws RemoteException, ServiceFaultException {

  // function here

}

這樣做的原因是因為它Optional.empty()是 API 的預期且不變的部分Optional;每個知道 anOptional是什么的開發人員都知道,如果帳戶丟失,則期望一個空的 Optional;Optional如果帳戶存在,他將理解他需要訪問內部的實際信息。


我們在這里提供一個@link,讓沒有聽說過Optionals的開發者可以查閱它各自的javadoc,了解它是如何工作的;這本身不是強制性的,但如果有很多經驗不足的開發人員參與您的項目,這可能會有所幫助。


查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號