Интерфейсы -, решающие неоднозначную ошибку

Давайте посмотрим на следующий пример:

public class BothPaintAndPrintable implements Paintable,Printable{
    public void print() {}
    public void paint() {}
}
public interface Paintable {
    public void paint();
}

public interface Printable {
    public void print();
}

public class ITest {
    ArrayList<Printable> printables = new ArrayList<Printable>();
    ArrayList<Paintable> paintables = new ArrayList<Paintable>();
    public void add(Paintable p) {
        paintables.add(p);
    }
    public void add(Printable p) {
        printables.add(p);
    }
    public static void main(String[] args) {
        BothPaintAndPrintable a= new BothPaintAndPrintable();
        ITest t=new ITest();
        t.add(a);//compiliation error here
    }
}

Что, если я хочу добавить BothPaintAndPrintableэкземпляров в каждый из ArrayList? Один из способов — перегрузить метод параметром BothPaintAndPrintable, но я пытаюсь найти альтернативы, поскольку это может снизить возможность повторного использования кода. У кого-нибудь есть другая идея?

5
задан Nandkumar Tekale 1 August 2012 в 15:31
поделиться