我是注释的新手,我有使用自定义注释注释的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)
我想你忘了把你的注释标记为 @Retention(RetentionPolicy.RUNTIME)
编辑:实际上你的注释应该是这样的:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documentedpublic @interface FXMLController {
String value() default "";
}
Run Code Online (Sandbox Code Playgroud)