当前位置: 首页 > 知识库问答 >
问题:

Java注释处理:在其他生成的代码中引用生成的类型

扈翰
2023-03-14
@GenerateInterface class A {}

@GenerateInterface class B {
  void setA(IA a) {}
}
interface IA {}

interface IB {
  void setA(IA a);
}
method.getParameters().forEach(p -> {
  ParameterSpec.Builder parameterBuilder = ParameterSpec.builder(
      TypeName.get(p.asType()),
      p.getSimpleName().toString(),
      p.getModifiers().toArray(new Modifier[p.getModifiers().size()]));
  p.getAnnotationMirrors().stream()
      .map(AnnotationSpec::get)
      .forEach(parameterBuilder::addAnnotation);
  methodBuilder.addParameter(parameterBuilder.build());
});

共有1个答案

邢炯
2023-03-14

我正在为我的Kripton持久性库开发一个注释处理器,我也遇到了类似的问题。我的问题类似但不相同:在我生成的类中,我引用了在同一轮中生成的其他生成类。

我应用的解决方案只是手工“生成”TypeName。在我的注释处理器中,我使用了一个特定的类,您可以在这里找到它的源代码。

Kripton将为Android平台生成实现基于SQLite的DAO模式的类。当我生成数据源时,我需要引用将在同一轮中生成的DAO类。为了做到这一点并避免同样的问题,我生成了相关的TypeName。您可以在BindDataSourceBuilder类的方法buildDataSource上看到这一点。

 类似资料:
  • 我正在编写一个简单的java注释处理器,它使用JavaPoet生成java类,然后将其写入文件管理器。 这个注释处理器正在将文件保存到中,而不是 我尝试将maven编译器插件中目录设置为生成的sources目录,但它仍然在class文件夹中生成它。 如何将生成的类保存在生成的源文件夹中?

  • 我已经编写了一个简单的注释处理器(只是为了好玩),它将生成一些我在以前的项目中编写的样板代码。它实际上通过收集活动类上的注释来生成如下所示的模块 但是,当我用dagger运行时,dagger似乎找不到我的注释处理器生成的类。虽然,类是生成的,并且存在于生成的目录中,我可以在源代码中使用它,但在编译时,dagger会产生以下异常。有什么专家建议吗? 这是主要的应用程序组件。 如果有人想做实验,这里有

  • 问题内容: 我正在使用Java 6注释处理API。我遵循了以下出色的教程,以创建用于在构建时显示消息的注释处理器: http://kerebus.com/2011/02/using-java-6-processors-in- eclipse/ 但是,就我而言,我有一个简单的类: 如您所见,使用元注释“ Retention”在运行时使JVM可以使用上述注释。我在另一个类的源代码中使用此“标准”注释来

  • 我必须在扩展Composite的GWT客户机类上实例化一个由我的自定义注释处理器生成的类。生成的类也与此视图位于同一个包中。但是,当我运行超级开发模式(SDM)时,我得到以下错误。 常规的GWT编译不会产生错误。但是,我在SDM编译时得到了错误。 如何使GWT SDM编译此视图?

  • 是否有人成功地遵循了GWTP样板生成的Eclipse注释处理方向?我遵循了Eclipse注释处理的说明,但无法导入GWTP注释包。 如果您能深入了解Eclipse注释处理或本文提到的其他Maven配置设置,我将不胜感激。 以下是GWTP样板生成的说明(页面底部): Eclipse注释处理 在Eclipse中,只要保存正在处理的文件,注释处理器就会启动,并且只增量更改所需的文件。另一种方法是使用Ec

  • MOXy BeanValide使我能够将验证添加到我的JAXB类中。 使用MOXy的“Bean Validation Plugin”,我可以根据预先存在的模式中的限制/方面在生成的JAXB类中进行Bean验证。 但是,有没有任何方法可以基于JAXB注释的java类的Bean验证注释生成带有限制/facetsb的模式? 在“模式优先”生成java时,XJC有一个方便的插件体系结构,但是是否有任何等效