You need a third overload:
public <T extends Object&Paintable&Printable> void add(T t) {
paintables.add(t);
printables.add(t);
}
This does the erasure add(Object), so it does not conflict with other methods, but limits the input to constructors both Paintable, and so Printable.
(Guava Joiner Iterator Iterable, , .)