2012-01-24 13 views
11

W Guava deweloperzy zdecydowali się użyć adnotacji:Adnotacje vs. Interfejs w Guava EventBus

class EventBusChangeRecorder { 
    @Subscribe 
    void recordCustomerChange(ChangeEvent e) { 
    recordChange(e.getChange()); 
    } 
} 

... zamiast klasycznych interfejsów:

class EventBusChangeRecorder implements Handler<ChangeEvent>{ 
    void handle(ChangeEvent e) { 
    recordChange(e.getChange()); 
    } 
} 

To sprawia kompilacji sprawdzanie niemożliwe. Zastanawiam się, jaka jest zaleta tego podejścia.

Czy widzisz tutaj zalety adnotacji?

Odpowiedz

19

Myślę, że na to pytanie odpowiada Guawa wiki.

+0

Dzięki. Właśnie tego szukałem. – deamon

+0

Zaktualizowany link: https://github.com/google/guava/wiki/EventBusExplained#why-use-an-annotation-to-mark-handler-methods-rather-than-requiring-s-listener-to-implement- an-interface – wanghq