@Documented
@Retention(value=RUNTIME)
@Target(value={PARAMETER,METHOD})
public @interface RuntimeType
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.