@Retention(value=RUNTIME) @Target(value={TYPE_USE,TYPE_PARAMETER}) @Repeatable(value=MultiTainted.class) public @interface Tainted
@ClassTaintingParam("aParam") class A { } class B { @Tainted(param="aParam") A f1; @Tainted(param="aParam", wildcard=Wildcard.EXTENDS) A f2; } is equivalent to: class A«aParam» { } class B { A«aParam=@Tainted» a; A«aParam=? extends @Tainted» b; }