How do different retention policies affect my annotations?
RetentionPolicy.SOURCE: Discard during the compile. These annotations don’t make any sense after the compile has completed, so they aren’t written to the bytecode. Example: @Override, @SuppressWarnings RetentionPolicy.CLASS: Discard during class load. Useful when doing bytecode-level post-processing. Somewhat surprisingly, this is the default. RetentionPolicy.RUNTIME: Do not discard. The annotation should be available for reflection at runtime. … Read more