我创建了一个使用泛型覆盖所有类的接口,但是我需要一个实现此接口的类的其他方法。
我希望能够使用声明变量的动态绑定作为接口,然后使用其中一个类初始化它。这样我的方法就可以更容易实现。
然而,它使一个人变得棘手。为了简单地尝试总结程序,我有一个界面:
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>>
ArrayData类包含其他DataType的ArrayList。所以我想要添加,删除和获取DataType到列表的其他方法。
然而,当使用上面的动态绑定技术时,无法调用这些方法,因为并非所有的DataType变量都是如此,所以我想知道是否有人知道如何解决这个问题,或者我错过了什么。感谢。
答案 0 :(得分:1)
正如您所说,您提出的方法对于接口来说不够通用,因此在顶级接口中添加/删除方法是没有意义的。
考虑2个接口,一个具有基本数据操作,另一个具有列表操作。
public interface ListDataType extends DataType<List<DataType>> {
// list operations
}