在 Java 中,实现方法参数需要参数多态性的接口(interface)的“正确”方法是什么?
比如我的界面包含:
public int addItem(Object dto);
该接口(interface)由各种类实现,但在每个类中,dto 参数都是各种强类型对象之一,例如 planeDTO、trainDTO 或 automobileDTO。
例如,在我的 planeDAO 类中:
public int addItem(planeDTO dto) { ... }
我是否只需将 dto 参数作为 Object 来实现,然后转换为适当的类型?
最佳答案
如果 DTO 都继承自一个公共(public)父类(super class)或实现一个公共(public)接口(interface),您可以:
// DTO is the common superclass/subclass
public interface Addable<E extends DTO> {
public int addItem(E dto);
}
您的具体实现可以:
public class PlaneImpl implements Addable<planeDTO> {
public int addItem(planeDTO dto) { ... }
}
或者,您可以简单地定义您的接口(interface)以接受接口(interface)/父类(super class):
// DTO is the common superclass/subclass
public interface Addable {
public int addItem(DTO dto);
}
编辑:
您可能需要做的是:
创建界面-
interface AddDto<E> {
public int addItem(E dto);
}
并在您的 DAO 中实现它。
class planeDAO implements AddDto<planeDTO> {
public int addItem(planeDTO dto) { ... }
}
关于Java 接口(interface) - 参数多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760064/