В основном у меня есть следующее:
public class BaseClass {}
public class SubClass extends BaseClass {
public SubClass(BaseClass bc) {...} // converts BaseClass Element to SubClassElement
}
public class BaseList extends ArrayList<BaseClass> {
Object someOtherAttribute;
public BaseList(someOtherAttribute) {
this.someOtherAttribute = someOtherAttribute;
}
}
Теперь я хочу реализовать класс
public SubList extends BaseList {
public SubList(Object someOtherAttribute) {
super(someOtherAttribute);
}
@Override
public void add(BaseClass baseClass) {
super.add(SubClass(baseClass));
}
//the problem is that I would have to override every single Method like addAll()
//because otherwise the elements wouldn't get converted ...
}
, который преобразует каждый элемент от BaseClass
до элемента Subclass
перед добавлением его в список.
До сих пор я не нашел лучшего способа, чем переопределение каждого метода List<BaseClass>