Annotation Type CompatibleWith
-
@Documented @Retention(CLASS) @Target(PARAMETER) public @interface CompatibleWith
Declares that a parameter to a method must be "compatible with" one of the type parameters in the method's enclosing class, or on the method itself. "Compatible with" means that there can exist a "reference casting conversion" from one type to the other (JLS 5.5.1).For example,
Collection.contains(java.lang.Object)
would be annotated as follows:interface Collection<E> { boolean contains(@CompatibleWith("E") Object o); }
To indicate that invocations of
Collection.contains(java.lang.Object)
must be passed an argument whose type is compatible with the generic type argument of the Collection instance:Collection<String> stringCollection = ...; boolean shouldBeFalse = stringCollection.contains(42); // BUG! int isn't compatible with String
Note: currently, this annotation can't be used if the method overrides another method that has
@CompatibleWith
already present.
-
-
Element Detail
-
value
String value
-
-