Dev*_*evs -1 java overriding parameter-passing
我有一个方法,当作为参数传递时,对4种不同类的类执行相同的任务.目前,我必须为所有4个类编写该方法4次.例:
doSomethingForClass1(MyClass1 myclass1, Address address);
doSomethingForClass2(MyClass2 myclass2, Address address);
doSomethingForClass3(MyClass3 myclass3, Address address);
doSomethingForClass4(MyClass4 myclass4, Address address);
Run Code Online (Sandbox Code Playgroud)
所有这些方法都做同样的事情并返回相同的对象.如何将其合并为一个方法并传递不同的对象?
如果你的所有4个类都可以实现相同的接口,比如IMyClass,那么你可以使用一个方法.
doSomethingForClass1(IMyClass myclass, Address address);
Run Code Online (Sandbox Code Playgroud)
虽然这可能是不可能的,也可能对您的应用没有意义.但是,如果这确实有意义,也可以考虑将该方法放在界面中.例如
public interface IMyClass {
public void doSomethingWithAnAddress(Address address);
}
Run Code Online (Sandbox Code Playgroud)
然后你的代码变得更加简单,
myClass.doSomethingWithAnAddress(address);
Run Code Online (Sandbox Code Playgroud)
ps你也可以有一个共同的抽象基类而不是接口.