在实现接口时使用额外的方法

时间:2014-01-07 23:58:32

标签: java class interface implements dynamic-binding

我创建了一个使用泛型覆盖所有类的接口,但是我需要一个实现此接口的类的其他方法。

我希望能够使用声明变量的动态绑定作为接口,然后使用其中一个类初始化它。这样我的方法就可以更容易实现。

然而,它使一个人变得棘手。为了简单地尝试总结程序,我有一个界面:

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变量都是如此,所以我想知道是否有人知道如何解决这个问题,或者我错过了什么。感谢。

1 个答案:

答案 0 :(得分:1)

正如您所说,您提出的方法对于接口来说不够通用,因此在顶级接口中添加/删除方法是没有意义的。

考虑2个接口,一个具有基本数据操作,另一个具有列表操作。

public interface ListDataType extends DataType<List<DataType>> {
  // list operations
}