将值传递给java中的自定义注释

时间:2013-10-10 12:17:48

标签: java annotations

我正在使用带有aspectj的自定义注释。

@TestLoggingAnnotation(setMessage = "I want to set value here")
public void get() {

    String retString = null;
    String message = "DEFAULT";

    if (message == "DEFAULT") {

        retString = "Default Logging";

    } else {

        retString = "Custom Logging";
    }
}

以上只是简单的示例代码。我的要求是我希望在方法结果之后传递参数值。

在我的情况下,我希望在自定义参数中将retString值设置为setMessage

2 个答案:

答案 0 :(得分:2)

截至目前,注释只能使用编译常量,并且无法在运行时分配值,尽管它们的值可以在运行时使用@Retention来使用。

discussion follows here

答案 1 :(得分:0)

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestLoggingAnnotation{
    String setMessage ();
}

现在使用反射来提取和设置方法参数我怀疑我们可以用局部变量做到这一点。