我已经创建了一个使用泛型覆盖所有类的接口,但是我需要实现此接口的一个类的其他方法。
我希望能够使用声明变量的动态绑定作为接口,然后使用其中一个类对其进行初始化。这样我的方法可以更容易实现。
但是,这使得一个变得棘手。为了简单地总结程序,我有一个界面:
DataType<T>
{
public T getParameter();
public void setParameter(T value);
}
实现此类型的类是:
StringData implements DataType<String>
IntData implements DataType<Int>
BooleanData implemets DataType<Boolean>
DoubleData implements DataType<Double>
以及我想要其他方法的那个;
ArrayData implements DataType<ArrayList<DataType>>
类包含其他数据类型的 ArrayList。所以我想要额外的方法来添加、删除和获取 DataType 到列表中。
但是,使用上面的动态绑定技术时无法调用这些方法,因为并非所有 DataType 变量,所以我想知道是否有人知道解决这个问题的方法,或者我错过了什么。谢谢。
正如您所说,您提出的方法对于接口来说不够通用,因此在顶级接口中添加/删除方法没有意义。
考虑 2 个接口,一个具有基本数据操作,另一个具有列表操作。
public interface ListDataType extends DataType<List<DataType>> {
// list operations
}