我有n个java类,每个类都包含自己的一组变量。我有一个方法,根据某些条件,它必须接受这n个类中的一个作为参数。如何将所有这些类作为泛型类型的子类,以便我的方法签名可以接受所有这些不同的类型?我不想重载这个方法。如果使用类型'Object‘作为参数,我将失去正在传递的输入参数类的性质。
发布于 2012-03-02 01:09:36
这是你想要的吗?
public interface common<T extends common<?>> {
public void commonMethod(T param, ...);
}
public class child implements common<child> {
public void commonMethod(child param, ...) {
...
}
}发布于 2012-03-01 16:50:03
定义一个所有类都实现的接口。然后在方法的头中声明参数为该接口的类型。
发布于 2012-03-01 16:51:07
如何将所有这些类作为泛型类型的子类,以便我的方法签名可以接受所有这些不同的类型?
简单地创建一个抽象类MySuperClass,这个类由您希望传递给该方法的所有类继承。这个超类具有共同的功能和属性。
另一方面,如果您的子类很可能扩展其他类;或者,类之间没有什么共同之处(除了它们都被传递给您的方法),您可以有一个接口,比如MySuperClass (理想情况下,我喜欢接口以I开头,比如IMySuperClass)。
我不想重载这个方法。
一旦您的超类或接口准备就绪,您的方法签名将类似于myMethod(Param1 val1, MySuperClass myObj, Param3 val3)。
很简单。
https://stackoverflow.com/questions/9513125
复制相似问题