Annotation Type Final


  • @Target({METHOD,FIELD})
    @Retention(RUNTIME)
    public @interface Final
    This annotation has two uses:
    • On an Shadow field, it can be used to raise an error-level log message if any write occurrences appear in the mixin bytecode. This can be used in place of declaring the field as actually final. This is required since it is normally desirable to remove the final modifier from shadow fields to avoid unwanted field initialisers. If MixinEnvironment.Option.DEBUG_VERIFY is true, then an InvalidMixinException is thrown.
    • On an injector or overwritten method, it is equivalent to setting the priority of the containing mixin to Integer.MAX_VALUE but applies only to the annotated method. This allows methods to mark themselves as effectively final, preventing their replacement by later mixins with higher priority.