Tag: 注释

如何创建处理局部变量的注释处理器?

我正在尝试为局部变量创建注释。 我知道我不能在生成的字节码中保留注释,但我应该能够通过执行以下操作在编译时访问信息: @Target({ElementType.LOCAL_VARIABLE}) @Retention(RetentionPolicy.SOURCE) public @interface Junk { String value(); } 只有当我在下面指定一个支持其类型的“垃圾”的ProcessorFactory时,这不会被apt或javac处理: class JunkTester { public static void main(String[] args) { @Junk String tmp = “Hello World”; System.out.println(tmp); } } 但是,当我在public static之前移动@Junk注释时,它将起作用 思考和/或解决方法?

在Java中为什么会出现这个错误:’属性值必须是常量’?

我有一些TestNG代码,我传递一个名为timeOut = TESTNG_TEST_TIMEOUT的Test annotation参数。 @Test(description = “Tests something.”, groups = { “regression” }, timeOut = TESTNG_TEST_TIMEOUT, enabled = true) 在我的TestBase类中,我有这个成员: public final static long TESTNG_TEST_TIMEOUT = TimeUnit.MINUTES.toMillis(5); 当我使用上面的代码行时,我在Eclipse中得到一个’属性值必须是常量’错误。 但是,如果我只是这样定义成员,它的工作原理如下: public final static long TESTNG_TEST_TIMEOUT = 300000; TimeUnit的使用不是常数吗?

ElementType.LOCAL_VARIABLE注释类型

我想创建自己的注释来注释一些局部变量。 编写注释不是问题,问题是在运行时获取它们的信息。 我只能从带注释的方法或方法参数中获取一些信息,但不能从局部变量中获取。 有没有办法得到它? 我自己的注释是这样的: public void m(int a) @MyOwnAnnotation(some information) int b = 5; } 或者,作为替代方案,有没有办法获取方法的代码,进一步解析它,最后得到注释值? 提前致谢。

动态类注释

我想动态地注释一个类,使其尽可能更通用: public class Test { @XmlAttribute(name = dynamicvalue) T[] data; public Test(String dynamicvalue) { } } 有没有办法实现这样的事情。 TA

C ++中类似Java的注释

在C ++中是否有类似Java的注释? 例如,@ Override注释标记一个函数,它覆盖另一个函数,如果不是,它将在编译时给出错误。 我在C ++中寻找这样的东西。

动态修改字段注释值

是否可以在运行时更改字段注释值? 我可以访问这些值,但无法找到更改它们的方法。 可以访问: Article.class.declaredFields.find {it.name=”annotatedField”}.declaredAnnotations

使用带注释的方法时使java编译器发出警告(如@deprecated)

假设我定义了一个名为@Unsafe的自定义注释。 我想提供一个注释处理器,它将检测对使用@Unsafe注释的方法的引用并打印警告。 例如,鉴于此代码…… public class Foo { @Unsafe public void doSomething() { … } } public class Bar { public static void main(String[] args) { new Foo().doSomething(); } } …我希望编译器打印如下: WARN > Bar.java, line 3 : Call to Unsafe API – Foo.doSomething() 它在精神上与@Deprecated非常相似,但是我的注释是在传达不同的东西,所以我不能直接使用@Deprecated 。 有没有办法用注释处理器实现这一目标? 注释处理器API似乎更关注应用注释的实体(在我的示例中为Foo.java ),而不是引用注释成员的实体。 此问题提供了一种使用ASM将其实现为单独构建步骤的技术。 但我想知道我是否可以通过javac和注释处理以更自然的方式完成它?

使用JAX-RSinheritance

我正在使用JAX-RS作为我的Web服务。 我有共同的function,并希望使用inheritance。 我提供简单的CRUD操作。 我已经定义了这样的接口: public interface ICRUD { @POST @Consumes(“application/json”) @Produces(“application/json”) @Path(“create”) public String createREST(String transferObject); @GET @Consumes(“application/json”) @Produces(“application/json”) @Path(“retrieve/{id}”) public String retrieveREST(@PathParam(“id”) String id); @POST @Consumes(“application/json”) @Produces(“application/json”) @Path(“update”) public void updateREST(@Suspended final AsyncResponse asyncResponse, final String transferObject) ; @DELETE @Consumes(“application/json”) @Produces(“application/json”) @Path(“delete/{id}”) public String deleteREST(@PathParam(“id”) String id); } 我有一个实现这个接口的抽象类: public abstract class BaseREST implements […]

接口上的注释?

我无法弄清楚能够在Java中注释接口的用例。 也许有人可以举个例子?

在哪里放置hibernate注释?

我把hibernate注释放在哪里? 它是我实例变量上面的行吗? 或者在吸气器之前? 或者在二传手之前? 或者它真的不重要吗? 非常感谢