第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

是否建議根據(jù)參數(shù)更改方法的返回類型?

是否建議根據(jù)參數(shù)更改方法的返回類型?

紫衣仙女 2022-06-08 17:40:06
我在 Java 中有一個舊代碼,它有一個返回番石榴ArrayTable<>的方法?,F(xiàn)在,我有一個要求,我想檢查將在 arrayTable 中的行數(shù),并且根據(jù)數(shù)量,我需要決定是否實際獲取 ArrayTable。ArrayTable foo(..args) {}該方法調(diào)用內(nèi)部 API,我將其結果組合成 ArrayTable。這些內(nèi)部 API 有它們的行計數(shù)實用程序,可以在沒有任何開銷的情況下獲取行計數(shù)。我的問題是解決這個問題的最佳方法是什么?據(jù)我所知,可能有兩種方法:單獨的實用程序:為該方法創(chuàng)建一個單獨的行計數(shù)實用程序,除了調(diào)用內(nèi)部 API 的行計數(shù)實用程序并返回行計數(shù)外,它執(zhí)行相同的操作。這將導致重復代碼。使用通用返回類型根據(jù)額外參數(shù)更改返回類型T foo(..args, boolean fetchRowCount) {if (fetchRowCount == true) {    return (Integer) rowCount;}else {    //do the normal thing    return (ArrayTable<>) output;}}
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

我建議用額外的參數(shù)覆蓋該方法,并使用現(xiàn)有的方法來獲取arrayTable,并且只在被覆蓋的方法中做額外的工作(計算行數(shù))。


ArrayTable foo(... args) {} //existing method


Integer foo(... args, fetchRows) {

    arrayTable = foo(args);

    // do the rest here

}

通過這種方式,您可以降低添加任何回歸的風險,并且您為此必須進行的代碼更改將是最小的。


查看完整回答
反對 回復 2022-06-08
?
蝴蝶不菲

TA貢獻1810條經(jīng)驗 獲得超4個贊

不,這是不可取的。


您可以創(chuàng)建一個FooResult包含標志的新類,并且可以包含 rowCount 或輸出:


class FooResult {

  private boolean outputAvailable;

  private Integer rowCount;

  private ArrayTable<> output;


  public FooResult(Integer rowCount) {

    this.outputAvailable = false;

    this.rowCount = rowCount;

  }


  public FooResult(ArrayTable output) {

    this.outputAvailable = true;

    this.output = output;

  }


  // getters

}

然后你的foo方法應該有FooResult它的返回類型,并返回如下:


if (/* some condition */) {

    return new FooResult(rowCount);

} else {

    return new FooResult(output);

}

最后,調(diào)用它的進程應該檢查標志,并根據(jù)標志的值從結果對象中獲取 rowCount 或輸出。


if (result.isOutputAvailable()) {

  // do stuff with result.getOutput()

} else {

  // do stuff with result.getRowCount()

}

不過,創(chuàng)建兩個單獨的方法可能更簡單。


查看完整回答
反對 回復 2022-06-08
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

我會簡單地使用兩種方法,然后重新考慮如何使用這些方法。我會先調(diào)用檢索行數(shù)的方法,然后根據(jù)該方法決定是否調(diào)用第二個。



查看完整回答
反對 回復 2022-06-08
  • 3 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號