如何在Java中将静态方法指定为注释值

时间:2014-01-06 15:08:38

标签: java reflection annotations

我想提供一个注释如下:

public @interface CloneField
{
    String sourceField();
    Class<?> customCloner();
}

人们可以在其类上注释字段,并且某些框架将通过在外部数据源对象上运行customCloner中的方法,自动将字段复制到其类实例。
例如:

class Test {
    @CloneField(sourceField = "demoTest", customCloner = StringToIntCloner.class)
    private int testField;  

这会将外部数据源对象上名为demoTest的字段中的字符串值复制到用户对象的int字段中。
由于customCloner不保存任何数据,我希望将克隆方法定义为静态,而无需仅为调用方法实例化它。
通常我会将自定义克隆类定义为:

Class <? extends FieldCloner> customCloner;

其中FieldCloner有一种克隆方法。 但由于接口不支持静态方法,因此没有一种干净的方法 在Java 7中有一种优雅的方法吗?
除了运行可以通过反射解决的方法的问题之外,我想在编译时验证customCloner类是否具有适当的克隆方法。

0 个答案:

没有答案