gpt4 book ai didi

java - 统一使用javax.lang.model.type.TypeMirror和java.lang.Class

转载 作者:行者123 更新时间:2023-11-30 06:56:57 24 4
gpt4 key购买 nike

我有一个接口(interface),其中包含一个接受 java.lang.Class 类型对象的方法

public interface TypeReviewer {
public int evaluate(Class<?> type);

...
}

现在我想在注解处理器中支持使用这个接口(interface)的对象。但是,由于有些类在注解处理的时候可能还没有被编译,看来我需要添加一个方法

    public int evaluate(TypeMirror type)

到界面。 (我可能还需要添加一个类型为 javax.lang.model.util.Types 的参数,但这对于接下来的问题并不重要)

对我来说,将此方法添加到接口(interface)没有任何意义,因为它应该为 javax.lang.model.type.TypeMirror 计算完全相同的值,并且 TypeMirror 基本上代表类。对于在类中实现此接口(interface)的程序员来说,这也是一个可能的失败点,对于完全相同的类型,这些方法可能会产生不同的结果。

这引出了我的问题:我可以做些什么来避免这种注释处理和任何其他元编程领域的冗余实现?

最佳答案

目前没有提供统一的飞蛾模型抽象。

有/有JEP 119 ("javax.lang.model Implementation Backed by Core Reflection") 不幸的是还没有包含在 JDK 中。这blog post Joe Darcy 对它进行了一些阐述,在 OpenJDK 存储库中的某个地方也曾经有一个原型(prototype)实现,但我再也找不到了。

关于java - 统一使用javax.lang.model.type.TypeMirror和java.lang.Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com