Annotation Type RuntimeType


@Documented @Retention(RUNTIME) @Target({PARAMETER,METHOD}) public @interface RuntimeType
Parameters that are annotated with this annotation will be assigned by also considering the runtime type of the target parameter. The same is true for a method's return type if a target method is annotated with this annotation.

 

For example, if a source method foo(Object) is attempted to be bound to bar(@RuntimeType String), the binding will attempt to cast the argument of foo to a String type before calling bar with this argument. If this is not possible, a ClassCastException will be thrown at runtime. Similarly, if a method foo returns a type String but is bound to a method that returns a type Object, annotating the target method with @RuntimeType results in the foo method casting the target's method return value to String before returning a value itself.
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    A non-instantiable type that allows to check if a method or parameter should consider a runtime type.