动态地将不同对象传递给同一方法

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)

所有这些方法都做同样的事情并返回相同的对象.如何将其合并为一个方法并传递不同的对象?

use*_*300 5

如果你的所有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你也可以有一个共同的抽象基类而不是接口.