如何解决如何验证注释参数的泛型类型参数是注释字段类型的子类
我有一个注释处理器来处理我的自定义注释。这些注解之一,称为 ArgumentConverter,定义如下
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ArgumentConverter {
Class<? extends ArgConverter<?>> converter();
}
我的注释处理器在它的 process
方法中有这个
for (final TypeElement annotation : annotations) {
Set<? extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(annotation);
for (final Element annotatedElement : annotatedElements) {
// validation here
}
}
正如标题所说,如何将 annotatedElement 的类型与注释中指定的 converter
的类型参数进行比较?理想情况下,最好检查一个是另一个的子类型,即以下内容就可以了
class MyConverter implements ArgConverter<Double> { ... }
@ArgumentConverter(converter = MyConverter.class)
private Number number;
但我很高兴能够将它限制为相同的类型。我试过阅读有关 TypeMirrors、DeclaredTypes、Elements 等的文档,但没有什么是真正坚持的。如果任何地方都有很好的资源可以详细了解这些内容,那将大有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。