可以将转换器信息添加到注解。
我的基本需求是获取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〉就好了
1条答案
按热度按时间zte4gxcn1#
注解值必须是编译时常量。这就是为什么必须使用
Class
而不是该类的示例。可以使用
newInstance
方法从Class
对象创建示例。确保该类具有无参数构造函数。