获取带注释字段的类作为自定义注释的默认值

时间:2020-12-23 10:36:08

标签: java annotations

我已经开始写一些注解,让我可以更轻松地定义一些 bukkit 插件中的信息模型类。

简单地说,我目前有两个注释,分别称为 @Model@Field。一种是将某个类标记为某些信息的模型,另一种是将某个字段标记为转置到数据库列中:

字段:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Field {
    public Class type();
}

型号:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Model {
}

我创建了一个使用这些注解的测试类:


import bukkitutils.sql.Field;
import bukkitutils.sql.Model;

@Model
public class ExampleModelClass {

    @Field(type = String.class)
    private String exampleStringField = "default value";
}

这似乎工作正常,我可以将类作为注释属性传递。我的问题是:

如何使该属性采用默认值 String.class,这样我就不必指定它,如果我希望该属性与字段属于同一类。?

我知道我可以指定默认值,例如public String exampleString() default "exampledefault",但是我怎样才能在其中获取字段的类?

0 个答案:

没有答案
相关问题