草庐IT

Annotations

全部标签

带有源代码操作的 Java 注释处理

我一直在寻找满足以下要求的解决方案-源文件在方法上使用自定义注释编写方法体需要根据注释进行一些改动。源文件不应该改变,但编译器的输入应该是修改后的源文件我查看了以下API-javax.annotation.processing-注释处理。javax.lang.model.*-注释处理和编译器树API中使用的语言模型com.sun.source.*-编译器树API。我想通过以下方式设计它:编写注解处理器生成编译器树在运行时编辑编译器树而不影响原始源文件将树提供给编译器CompilerTreeAPI似乎在允许访问的地方com.sun.source.tree.MethodTree但是编译器T

java - 对多个注释进行分组

我有Java1.7。有什么方法可以将多个注释分组为单个注释。这样我就可以使用单个注释进行注释并获取所有分组的多个注释的所有属性。我想避免每次都重复多个注释行。我们可以将3个注解合二为一吗Java核心库或其他库是否支持此功能。谢谢 最佳答案 不,那是不可能的。一个既定的习惯用法是用它的组合注释对@Combined注释进行元注释:@A@B@Cpublic@interfaceCombined{}此模式表示使用@Combined注释元素等同于指定@A、@B和@C在该元素处。这当然需要使用这些注释的库了解并使用这种模式。那就是例如BeanVa

java - 动态类注解

我想动态注释一个类,使它尽可能通用:publicclassTest{@XmlAttribute(name=dynamicvalue)T[]data;publicTest(Stringdynamicvalue){}}有什么办法可以达到这样的效果。助教 最佳答案 没有。注解是静态的类级信息,它们不受实例字段值的影响(不,它们也不受静态字段值的影响)。 关于java-动态类注解,我们在StackOverflow上找到一个类似的问题: https://stackove

java - 如何确保 java 中的注释执行顺序?

我有2个自定义注释,但一个应该始终在另一个之前执行。我如何确保这一点?是否有某种排序或使用其他方法定义? 最佳答案 您可以使用@Order注释确保自定义注释的顺序。https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/annotation/Order.html例子:第一个注释:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfac

java - 自定义 Jackson ObjectMapper 以读取自定义注释并屏蔽带注释的字段

我有一个要求,我已经创建了一个自定义注释@MaskSensitiveData。我注释敏感字段。喜欢classMyBean{StringuserName;@MaskSensitiveDataStringcardNumber;Stringabc;Stringxyz;}ObjectMappermapper=newObjectMapper();Stringjson=null;AnnotationIntrospectorprimary=newJaxbAnnotationIntrospector();AnnotationIntrospectorsecondary=newJacksonAnnotat

java - java中@deprecated的逆向是什么

这个问题在这里已经有了答案:AnnotatingUnstableClasses/MethodsforJavadoc(1个回答)关闭6年前。所以,人们使用@Deprecated已弃用的API的注释。如果方法正在演进并且不稳定,是否有任何注释可以通知用户?

java - 学习NetBeans平台: annotations vs layer. xml文件

我正处于学习NetBeans平台的早期阶段。我注意到NetBeans7.0广泛使用注解来注册类、指定窗口模式等。这是一个很好的功能,但是到目前为止我找到的学习Material(RichClientProgramming、TheDefinitiveGuide,netbeans上的教程。org和最新的refcard)都广泛引用了检查和编辑layer.xml文件。由于我仍处于学习曲线的低端,我发现很难将带注释的代码与层文件示例结合起来。我正在考虑在学习时回到NetBeans6.x版本,以便与书籍和教程保持同步,至少在我掌握核心API和基本实践之前是这样。如果能听取经验丰富的NetBeans平

java - 注释上的自定义 Eclipse 警告

假设我有一个内部方法,应该只在某些情况下使用。在Eclipse中,是否有可能将其标记为内部并在用于防止我或将使用我的API的人错误地使用它而不知道他们在做什么时显示警告。我无法更改它的可见性,因为它也可能用于其他包/非扩展类。像这样:@InternalpublicvoiddoSomeInternalStuff(){//...}然后,Eclipse中的警告:你明白了。有希望吗? 最佳答案 JSR269(可插入注释处理器API)允许您编写自定义注释处理器,它可以处理自定义注释并使您能够使用javax.annotation.process

java - 空请求正文未被 Spring @RequestBody @Valid 注释捕获

我目前在Spring中遇到了@RequestBody注释的问题。我目前在我的模型上正确设置了所有验证注释,并且它们在发布对象时效果很好。即使发布的请求正文完全为空或空对象“{}”,一切都按预期工作。当有人试图发布“null”的请求正文时,问题就出现了。这以某种方式通过了@Valid注释并且没有被捕获,导致当我尝试访问该对象时出现NullPointerException。我在下面粘贴了我的Controller的片段。@Secured({ROLE_ADMIN})@RequestMapping(method=RequestMethod.POST,consumes={MediaType.APP

java - 从@Valid 验证中排除某些字段

我使用Spring的@Valid注释来验证用javax.constraints注释注释的bean字段。但是当我需要从验证中排除某些字段时(仅针对某些情况),我遇到了一个问题。我进行了调查,但没有找到任何有用的方法,而且大多数答案的日期为2010-2011年。令人惊讶的是,这种情况如此普遍。与那时相比,Spring4.+有什么变化吗?或者也许任何人都可以分享个人经验如何战胜它?谢谢。 最佳答案 您可以使用验证组和@Validated注解。在http://www.javacodegeeks.com/2014/08/validation-