首页 > 解决方案 > 获取注释字段的类作为自定义注释的默认值

问题描述

我已经开始编写一些注释,以便我更轻松地为我的一些 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,所以我不必指定它,如果我希望属性与字段相同。?

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

标签: javaannotations

解决方案


推荐阅读