java 可以向注解添加转换器

jtw3ybtb  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(172)

可以将转换器信息添加到注解。
我的基本需求是获取AccessibleObject调用Annotation.converter().convert(object)
下面的例子是用object.toString()简化的,但可以更复杂。

public interface MyConverter {
    default convert(Object o) {
        return o.toString()
    }
}

@interface MyAnnotation {
    Class<MyConverter> converter() default MyConverter.class
}

class Foo {
    public convert(AccessibleObject a) {
       //Convert doesn't because it is a class, but how to get the default method convert from the annotation setup?
        a.getAnnotation(MyAnnotation.class).converter().convert(a)
    }

}

如果可以设置Function〈String,Object〉就好了

zte4gxcn

zte4gxcn1#

注解值必须是编译时常量。这就是为什么必须使用Class而不是该类的示例。
可以使用newInstance方法从Class对象创建示例。确保该类具有无参数构造函数。

相关问题