我正在尝试下面的一段代码.
public void doSomething(){
makeMethodCall(car);
statement1......
statement2......
makeMethodCall(bike);
statement3......
makeMethodCall(bicycle);
}
private void makeMethodCall(Object obj){
if(obj instanceof Car){
obj.drive();
}
if(obj instanceof Bike){
obj.drive();
}
if(obj instanceof Bicycle){
obj.drive();
}
// There are many if loops
}
Run Code Online (Sandbox Code Playgroud)
我在想我正在做一些错误的活动.无论如何,我可以使用lamba表达式来处理这个编程.我是java8的新手,我发现使用lambda表达式很棘手.
Object在绝大多数情况下,声明一个接受作为参数的函数是不好的做法,当然在手头的情况下.
Car,Bike并且Bicycle应该从一个共同的抽象基类派生Vehicle,它定义一个抽象方法drive().然后,将在每个派生类中重写此方法.
所以,而不是makeMethodCall( object )你会这样做vehicle.drive().
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |