G'day同志。我有個問題。提供字段存取方法作爲參數
我有兩個方法是完全重複,他們正在訪問不同的領域。我無法通過字段值作爲參數,因爲訪問需要一個循環(簡化的例子)內的地方:
public final class Thing {
ImmutableList<Box> boxes;
public int getNumberOfApples() {
int total = 0;
for (Box box : boxes) {
total += box.getApplesCount();
}
return total;
}
public int getNumberOfPears() {
int total = 0;
for (Box box : boxes) {
total += box.getPearsCount();
}
return total;
}
}
我可以把我的水果成地圖,並通過字段名作爲參數,但它看起來髒髒的,我我對現在的班級作文很滿意。所以問題是 - 我如何重構我的代碼以獲得單一類型的方法:
public int getNumberOfFruit(SomethingMagic) {
moreMagic;
return total;
}
Cheerio。
開關狀況,或者如果條件...傳遞一個字符串即「蘋果」或「梨」到你的功能,使它一般 - getNumberOfFruit(String fruitName).. if(type.equals(「apple」))doSomething ... if(type.equals(「pear」))doSomethingElse .. – TheLostMind
想到這一點,但仍然看起來醜陋。如果我得到一百種水果,會怎麼樣? – Rince