【发布时间】:2018-07-18 09:32:06
【问题描述】:
可以使用泛型将返回类型与参数类型匹配吗?
示例:
我有一个抽象类,可以实现从不同 POJO 导入数据,这个类包含一个抽象方法 importData。
importData 返回的 Object 必须与传递给方法的 Object 类型相同。
public abstract POJO importData(final POJO dataObject, final String messageId);
由于抽象方法的每个实现的 Object 类型都不同,并且该类型不扩展另一个,如何定义抽象方法以使实现返回类型和传递的类型必须匹配?
编辑:
久经考验:
public abstract <T> T importData(final T jaxbObject, final String messageId);
结果:
方法的返回类型不必与传递的对象类型匹配。
【问题讨论】:
-
只是想知道。如果您使用
public abstract <T> T importData(final T jaxbObject, final String messageId);,实现类是如何设法返回除原始jaxbObject之外的任何内容的?实现类不知道要实例化和返回什么对象。