Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- public static void main(String[] args) {
- // Create a visitable collection
- FooCollection c = new FooCollection();
- // Add some members
- c.add(new Foo());
- c.add(new Bar());
- // Visit
- c.accept(new IVisitor<Foo>() {
- public void visit(Foo foo) {
- System.out.println("Foo");
- }
- public void visit(Bar bar) {
- System.out.println("Bar");
- }
- });
- }
- public static class Foo {
- }
- public static class Bar extends Foo {
- }
- public static interface IVisitor<T> {
- public void visit(T object);
- }
- public static class FooCollection {
- private final ArrayList<Foo> m_list = new ArrayList<>();
- public void accept(IVisitor<Foo> visitor) {
- for (Foo foo : m_list) {
- visitor.visit(foo);
- }
- }
- public void add(Foo foo) {
- m_list.add(foo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement