Ich habe gerade in der Guice-Dokumentation gesehen, dass man Annotations ableiten kann - das habe ich bisher noch nie gesehen. Aber das hier scheint für den Compiler OK zu sein.
Wenn ich es richtig verstehe, braucht das Guice die Klasse, um equals und hashCode zu überschreiben, damit das mit ihren Bindings hinhaut, und entsprechend wird auch die Implementierung und nicht die Annotation beim Binden übergeben. Das kann ich mir noch so ungefähr vorstellen.
Gibt es da noch andere Einsatzmöglichkeiten?
Code:
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {}
public class TestImpl implements Test {
public Class<? extends Annotation> annotationType() {
return Test.class;
}
}
Wenn ich es richtig verstehe, braucht das Guice die Klasse, um equals und hashCode zu überschreiben, damit das mit ihren Bindings hinhaut, und entsprechend wird auch die Implementierung und nicht die Annotation beim Binden übergeben. Das kann ich mir noch so ungefähr vorstellen.
Gibt es da noch andere Einsatzmöglichkeiten?