草庐IT

annotations

全部标签

java - java 1.8 上的 maven-enunciate-plugin 作为 apt 现在已从最新的 JDK(即 java 注释处理工具)中删除

问题是如何让java1.8和maven-enunciate-plugin协同工作?使用Maven插件org.codehaus.enunciateversion1.29和OSXJDK1.7.0_25一切都很好。Enunciate依赖于apt,我在1.7.0_25中看到了这个运行时警告[INFO]invokingenunciate:generatestep...warning:TheapttoolanditsassociatedAPIareplannedtoberemovedinthenextmajorJDKrelease.Thesefeatureshavebeensupersededby

java - 哪些是 Java 注解中字段和方法的默认修饰符?

哪些是x和m的默认修饰符public@interfaceAnno{intm()defaultx;intx=10;}?我想上面的代码等同于:public@interfaceAnno{publicintm()defaultx;publicstaticfinalintx=10;}修饰符public和publicstaticfinal是多余的,但我没有找到官方解释。我在看这里:https://docs.oracle.com/javase/8/docs/technotes/guides/language/annotations.htmlhttps://docs.oracle.com/javase

java - 如何根据另一个 Java 注释定义一个 Java 注释?

例如,我想将@Nonnegative定义为@Min(0),将@DaySeconds定义为@Min(0)@Max(86399)。 最佳答案 两者都是@Min和@Max注释可以用在注释本身上。这叫做constraintcomposition.因此,您可以像这样定义一个新的约束DaySeconds:@Min(0)@Max(86399)@Target({METHOD,FIELD,ANNOTATION_TYPE})@Retention(RUNTIME)@Constraint(validatedBy={})@Documentedpublic@i

java - SonarQube 误报鱿鱼 :S1450 for @Getter (lombok) annotated fields

我想我在使用@Getter时发现了误报来自ProjectLombok的注释.在下面的示例类中,我收到警告“仅用作方法中的局部变量的私有(private)字段应成为局部变量”(squid:S1450)。publicclassExample{@GetterprivateStringexampleField;//有人可以证实吗?是SonarQube规则中的错误还是我的类(class)或我对该规则或@Getter注释的理解有问题?为了完整起见:项目lombok注释或生成的方法在其他SonarQube规则中被正确识别。所以我认为我的设置很好。我还尝试将@Getter注释放在类级别,但我收到了同样

java - 如何使用@Target(ElementType.TYPE_USE) 处理注解?

我正在实现一个注释处理器,以确保标有注释的元素是实现特定接口(interface)的类的实例,或者是实现特定接口(interface)的类型的使用:@Documented@Target(value={ElementType.PARAMETER,ElementType.TYPE_USE})@Retention(value=RetentionPolicy.RUNTIME)public@interfaceAuditSubject{}publicinterfaceAuditable{//methodsthatprovidedataforwritingalogentry...}publiccla

java - JPA:我应该使用 orm.xml 清理我的实体类吗?

我目前只使用JPA注释,但我真的不喜欢我用这么多与它们的行为无关的ORM细节污染我的实体类(例如表名、id生成策略、连接列...)。我看到了DataNucleusrecommendsputtingORM-relatedannotationsinXMLinstead(那些粉红色的),但我还没有看到任何其他实现推荐这个并且JPA似乎没有将注释分成这两个组(我认为JDO这样做)。有没有人这样使用annotations+orm.xml,体验如何?它会消除我的实体类中的一些污染,还是会遇到问题? 最佳答案 我们半定期面临的最大问题是,如果您想

java - 如何扩展 Spring 注解 @Transactional

我必须在我的网络应用程序中使用3个不同的事务管理器。所以我根据Springreference写了自己的Annotation(第10.5.6.3节自定义快捷方式注释)。一个注释(用于使用一个特定的事务管理器)如下所示:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importorg.springframework.transacti

java - Spring @Autowired messageSource 在 Controller 中工作但不在其他类中工作?

新更新:2010年12月31日晚上8:15非常肮脏的修复,但这是我暂时使messageSource工作的方式。我更改了我的Controller类以将“messageSource”传递给Message类,并且能够检索消息。请查看下面的类定义,让我知道您可能需要帮助的更多信息。非常感谢您提供的所有帮助。2010年12月31日下午3点由于无法成功通过注解配置messageSource,我尝试通过servlet-context.xml配置messageSource注入(inject)。我仍然将messageSource设为null。如果您需要任何更具体的信息,请告诉我,我会提供。提前感谢您的帮

java - 使用用户定义的注释生成编译器警告

是否可以让编译器在遇到用户定义的注释时生成警告?类似于@Deprecated注释的东西?谢谢 最佳答案 根据您最初的问题和评论,我假设您正在尝试执行以下操作:将代码标记为不完整(带有编译器警告),以便其他开发人员不要使用它。稍后在您的IDE中识别不完整的代码。我不相信您可以用编译器警告标记代码。@Deprecated标记被嵌入到编译器中。指示方法不完整的更常见方法是抛出异常:thrownewUnsupportedOperationException("Notimplementedyet");效果要到运行时才能实现,但其他开发人员应该

java - 为什么要用@interface来定义注解?

作为最终用户,我一直在Java中使用注解或有一段时间,但最近我决定研究创建自己的注解类型,我发现在Java中使用@interface定义注解的语法非常奇怪。我的问题是为什么Java使用@interface来定义注解而不是像它们为枚举那样引入新的关键字?我缺少的@interface语法有什么优势吗?我很想了解注解设计者所经历的设计考虑,我相信他们一定考虑过引入新关键字来定义注解的想法。@interface有太多的限制,例如你不能使用extend,在定义注解成员时有一些特定的类型你不能使用,比如Date。我发现对可以进入@interface的内容的限制并不明显,这对我来说就像一个hack。