調用同樣的方法有兩類蘋果和橙色這樣的:我如何從兩個不同的類中的Java
public final class Apple{
int getJuice();
}
public final class Orange{
int getJuice();
}
,我不能改變他們。 我有第三類fruitsManeger這樣的:
class FruitManeger {
Apple apple;
Orange orange;
enum Fruits{
Apple,Orange
}
Fruits favorFruits;
int getJoice(){
if(favorFruits==Fruits.Apple){
apple.getJuice();
}else if(favorFruits==Fruits.Orange){
orange.getJuice();
}
}
}
我的問題:什麼是落實getJuice方法FruitManeger類最佳途徑?
正如你可以看到,如果我有很多水果,我應該添加很多如果其他到期。
當然,我可以使用反射來按名稱調用方法,但getJuice方法返回一個對象並且您想要執行與此相同的操作時不是一個好主意。
有沒有更好的辦法?
我不能改變蘋果和橙類 – max
我們將不得不問,爲什麼你不能改變蘋果和桔子......因爲你需要的,如果/ case語句的鉅額就是一個直接結果。順便說一下,你可以使用Reflection來處理返回的對象......你只需要更多的if/case語句。 –
,因爲蘋果和橙色是在Java庫 – max