调用同样的方法有两类苹果和橙色这样的:我如何从两个不同的类中的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