jjzjj

Annotation

全部标签

java - 自动包装@Repeatable 注解的顺序

以前,我习惯于手工声明一个wrapperannotation,用一个数组,然后这样调用它:@Foos({@Foo(0),@Foo(1),@Foo(2)})publicvoidbar(){}因为我是用{...}初始值设定项创建一个数组,当我稍后通过反射访问此方法时,很明显顺序与声明的顺序相同。但是,当我使用Java8中新的@Repeatable注释时,我能保证顺序会被保留吗?我声明了一组简单的注解:public@interfaceFoos{Foo[]value();}@Repeatable(Foos.class)public@interfaceFoo{intvalue();}并使用最多样

java.lang.InternalError : CallerSensitive annotation expected at frame 1 错误

在静态方法中(用@CallerSensitive注释)我尝试获取调用类的名称:@CallerSensitivepublicstaticvoidsomeMethod(){Stringname=sun.reflect.Reflection.getCallerClass().getName();...}我得到错误:java.lang.InternalError:CallerSensitiveannotationexpectedatframe1这里有什么问题吗?引用资料http://www.infoq.com/news/2013/07/Oracle-Removes-getCallerClass

java - IntelliJ IDEA 中的 Annotation Processor 编译

我正在使用最新版本的IntelliJIDEA(13.1.4),并且正在开发自己的自定义注释。我的项目目前有两个模块MyOwnCustomAnnotationProcessor(这里我有实际的处理器)MyOwnCustomAnnotationProcessorTest(我基本上对几个类进行了注释,以查看它是否都能正常生成)我在Eclipse中工作,但我正在尝试迁移otIntelliJ,因为我无法忍受Eclipse。通过让Ant构建生成主项目的.jar文件,我设法让它在Eclipse中发挥作用,测试类将使用这个.jar。但我无法让它在IntelliJ上运行。在Settings->Compi

java - 如何将 javax.annotation.Generated 添加到 Java SE 5?

我正在开发一个必须在JavaSE5和JavaSE6上运行的项目。我最近开始使用一种工具,它可以将@Generated注释添加到生成的代码中,我想继续那些注解。看起来javax.annotation.Generated在Java5EE和Java6SEandlater中,但不在Java5SEAPI中。当我将它发送给客户时,包含javax.annotation.Generated的最佳方式是什么,以便它可以在JavaSE5和JavaSE6上运行而不会出现任何问题?我只需要包含一个额外的jarfile吗?如果是这样,@Generated住在哪一个? 最佳答案

java - 如何仅为休息 Controller 更改基本网址?

是否有任何配置选项只允许更改restController的基本url,例如,如果我的api的基本url是www.example.com/user/{id}变成www.example.com/rest/user/{id}?我正在使用springbootv1.3.2我尝试创建自定义注解,它通过添加RequestMapping来扩展RestController。这是示例,但它不起作用。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@RestController@RequestMapping(value="/rest",

java - Ant 警告 : Implicitly compiled files were not subject to annotation processing

我在运行Ant构建脚本(Ant1.8.2、Java1.6)时收到此警告。[javac]warning:Implicitlycompiledfileswerenotsubjecttoannotationprocessing.[javac]Use-proc:nonetodisableannotationprocessingor-implicittospecifyapolicyforimplicitcompilation.[javac]1warning添加产生:[javac]error:Classnames,'implicit',areonlyacceptedifannotationproc

java - 向 Java 类添加编程注释

使用示例:我想在类字段上放置一个自定义注释@MyContainer,然后在所有此类字段上自动添加相关的Hibernate注释(取决于字段类型和属性)。此外,我需要向类添加JAXBXmlType注释,并将类型名称基于类名称。我还想根据他们的类型等向字段添加注释。所有添加的注释都应该在运行时可用(这样hibernate/JAXB可以找到它们)。我知道以下选项:预处理类源码(错误选项)在编译期间使用javax.annotation.processingAPI进行处理使用JavaAssist等工具进行编译后操作使用java.lang.instrumentAPI加载类期间的操作用AspectJ做

java.security.AccessControlException : access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect.annotation") Spring

我使用谷歌应用引擎和spring-security创建简单的springmvc应用程序。当我运行我的应用程序时,我在堆栈跟踪中得到了这个:java.security.AccessControlException:accessdenied("java.lang.RuntimePermission""accessClassInPackage.sun.reflect.annotation")atjava.security.AccessControlContext.checkPermission(AccessControlContext.java:372)atjava.security.Acc

java - 是否有一个未弃用的默认类级别注释,默认情况下指定非空返回值

Google让我失望了。曾经有这样的注解:ReturnValuesAreNonnullByDefault.但这现在已被弃用,javadoc没有指出要使用哪个新注释。整个类的@Nonnull不适用于返回值,因为我刚刚对其进行了测试,并且没有收到有关返回null的方法的警告。我不想专门注释每个返回值,那么有没有好的选择? 最佳答案 您可以使用thisanswer构建您自己的简单@EverythingIsNonnullByDefault注释以在包/类级别应用以涵盖所有情况,或thisone它向您展示了如何创建单独的注释来管理字段和方法返回

java - 如何处理 Java "annotation processor"中的泛型?

我之前问过一个例子“注释处理器”,它会为一个接口(interface)生成一个代理/委托(delegate),但没有得到答案,也没有在互联网上找到任何东西,所以我自己做了一个。到目前为止它运行良好,直到我尝试在super接口(interface)中使用泛型。如果我在带注释的界面中使用泛型,它工作正常(更多是偶然而不是设计)。但是,如果带注释的接口(interface)扩展了另一个采用通用类型参数的接口(interface),则该参数不会“绑定(bind)”到带注释的接口(interface)在扩展super接口(interface)时使用的类型。示例:publicinterfaceTe