Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.lshift.java;
- import net.lshift.java.dispatch.DynamicDispatch;
- public class DynamicDispatchTest
- {
- /* the event hierarchy:
- * Event
- * \
- * SystemEvent
- * \
- * AdditionEvent
- */
- // define event listener interface
- public interface EventListener
- {
- public boolean handleEvent(Event e);
- }
- // implement it for some argument types
- public class SuperEventListener implements EventListener
- {
- public boolean handleEvent(Event e) {
- System.out.println("handleEvent(Event) in SuperEL called");
- return true;
- }
- }
- public class MySystemEventListener
- extends DynamicDispatchTest.SuperEventListener
- {
- public boolean handleEvent(SystemEvent e) {
- System.out.println("handleEvent(SystemEvent) in SE called");
- return true;
- }
- }
- public void basicDispatchTest()
- {
- // create a dynamic dispatcher proxy
- DynamicDispatchTest.EventListener aListener =
- (DynamicDispatchTest.EventListener) DynamicDispatch.proxy(
- DynamicDispatchTest.EventListener.class,
- new MySystemEventListener());
- // this works fine
- aListener.handleEvent(new AdditionEvent());
- // this causes a NoSuchMethodError
- aListener.handleEvent(new Event());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement