- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种方法来检测一个类是否是从注释处理器中的另一个类/接口(interface)继承的。由于注释处理器在源代码上运行而不是运行时,因此无法使用 reflation API,我找到的唯一方法是:
public class MyProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
// Simple test
processingEnv.getTypeUtils().isAssignable(
processingEnv.getElementUtils().getTypeElement("java.util.List").asType(),
processingEnv.getElementUtils().getTypeElement("java.util.Collection").asType()
);
}
}
但是即使 List 实现了 Collection,此方法也始终返回 false。有什么想法吗?
最佳答案
感谢Slaw的评论。这个解决方案似乎有效:
public class MyProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
// Simple test
processingEnv.getTypeUtils().isAssignable(
processingEnv.getTypeUtils().erasure(processingEnv.getElementUtils().getTypeElement("java.util.List").asType()),
processingEnv.getTypeUtils().erasure(processingEnv.getElementUtils().getTypeElement("java.util.Collection").asType())
);
}
}
您可以在此处找到有关删除及其作用的更多信息:https://www.tutorialspoint.com/java_generics/java_generics_type_erasure.htm
关于java - 检查源级别 AnnotationProcessors 中 Element 的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59494473/
我正在使用 gradle/querydsl 和 JPA 2.1。 我想使用 APT (QEntities) 生成 querydsl 元数据。 为此,我使用了 gradle-apt-plugin 和 g
以下是我的 build.gradle 文件。我的项目在本地编译(IntelliJ-IDEA 是我的 IDE),但是当我将它推送到 GitHub 时, travis-ci 构建失败。我的 gradle
我写了一个注解处理器。用户可以传递一个选项作为处理器的参数。我也可以在我的注解处理器中读取这个参数。到目前为止一切顺利,一切都按预期进行! 但是,我收到编译器的警告,即传递给注解处理器的选项尚未被任何
我有两个带有方法的类,我想将两个类的方法合并到一个类中。 @Service("ITestService") public interface ITest1 { @Export void m
我按照 JMH 主页中的说明创建了 maven 原型(prototype)项目。我收到“注释生成器抛出异常。java.lang.NullPointerException”当我对生成的项目进行 mave
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Plugging in to Java compilers 编辑 - 这似乎是 Plugging in to Jav
基于 ButterKnife lib,我升级到新版本8.5.1。我用过 compile 'com.jakewharton:butterknife:8.5.1' annotationProcesso
对于插桩测试,我有一个创建 TestComponent 的 TestApplication,但不再生成该文件(Error:/xxx/TestApplication.java: 16: 无法解析 imp
我有一个使用 AnnotationProcessor 处理的类。在此过程中,我有一个 javax.lang.model.element.Element 实例,我可以在其中通过 .getSimpleNa
我希望创建一个注释,它将测试带注释的类型(可能是接口(interface))及其所有子类型,如果任何测试的类型是没有无参数构造函数的具体类,则抛出编译错误。我能够测试实际带有注释的类型,没问题。测试子
这是我在向我的 android 项目添加新的 gradle 依赖项时遇到的以下错误。而且这个错误不是项目特定的。如果我在任何其他 android 项目中添加插件,我会遇到同样的错误 Error whi
我在 IntelliJ IDEA 中创建了简单的注释处理器,添加了注释配置文件,但我不明白如何运行它。我知道注释处理器在编译时工作,但我没有在输出中看到来自注释处理器信使的任何消息。 public c
我正在使用 java 注释处理器在编译时生成其他类。使用 gradle 构建时效果很好,但我无法让 IntelliJ 识别生成的类。每当我尝试在 IntelliJ 中构建项目时,它都会出错,说它找不到
我正在尝试导入 数据库流正如 their readme 中的建议.修改项目级 build.gradle 文件并尝试同步后,出现以下错误: Error:(27, 0) Could not find me
我正在寻找一种方法来检测一个类是否是从注释处理器中的另一个类/接口(interface)继承的。由于注释处理器在源代码上运行而不是运行时,因此无法使用 reflation API,我找到的唯一方法是:
我需要创建一个自定义注释,当该注释应用于方法时,会根据各种检查检查并验证输入参数(原始和非原始)。如果检查失败应该直接返回错误消息。 在搜索时,我在创建自定义注释时遇到了 AbstractProces
我正在编写自定义 AnnotationProcessor 并且需要访问在执行期间设置为 javac 的选项:例如-详细,-s,-d 正确的做法是什么?我不认为解析“sun.java.command”系
问题: 是否可以通过注释处理器访问使用 @Target(ElementType.TYPE_USE) 注释注释的元素? 是否可以通过注解处理器访问注解类型边界? 非常感谢我错过的相关文档链接。 上下文:
我只想在我的系统应用程序中使用 bufferknife 和 drag2,我已经使用命令 mm 构建了我的应用程序。 我已经尝试了所有可能的方法,但都失败了!我只通过谷歌搜索找到了以下 Android.
我正在使用 AndroidAnnotaion,但由于 Android Studio 2.3 和 Gradle 2.3.0,他们说 android-apt 已过时。而 annotationProcess
我是一名优秀的程序员,十分优秀!