Java - get注释始终为null

Abd*_*dar 1 java annotations

我是注释的新手,我有使用自定义注释注释的FXMLController类,将这些类发送到工厂以从注释中获取值,但它始终为null~

注释:

public @interface FXMLController {

    String value() default "";

}
Run Code Online (Sandbox Code Playgroud)

用法:

@FXMLController(value=CommonConstants.SPLASH_SCREEN)
public class SplashScreenController{ ....... )
Run Code Online (Sandbox Code Playgroud)

获得价值:

Annotation annotation = controller.getAnnotation(FXMLController.class);
FXMLController fxmlController = (FXMLController) annotation;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Ale*_*exR 8

我想你忘了把你的注释标记为 @Retention(RetentionPolicy.RUNTIME)

编辑:实际上你的注释应该是这样的:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documentedpublic @interface FXMLController {
    String value() default "";
}
Run Code Online (Sandbox Code Playgroud)