KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a generic interface public interface Consumer<E> { public void consume(E e); } I have a class that consumes two types of objects, so I would like to do something like: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void consume(Tomato t) { ..... } public void consume(Apple a) { ...... } } Apparently I can't do that. I can of course implement the dispatch myself, e.g. public class TwoTypesConsumer implements Consumer<Object> { public void consume(Object o) { if (o instanceof Tomato) { ..... } else if (o instanceof Apple) { ..... } else { throw new IllegalArgumentException(...) } } } But I am looking for the compile-time type-checking and dispatching solution that generics provide. The best solution I can think of is to define separate interfaces, e.g. public interface AppleConsumer { public void consume(Apple a); } Functionally, this solution is OK, I think. It's just verbose and ugly. Any ideas?
Tags (comma-separated)
Save Edits
Cancel