问题标签 [javapoet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
245 浏览

java - AnnotationProcessing - 在每一轮与最后一轮生成文件

我正在玩注释处理,无法通过代码中的导入直接使用生成的文件。相反,我必须在生成的类前面加上其完整的包。我发布了一个 SO question error: package generated.schema does not exist

最后我找出了原因,结果很简单,请参阅我对同一篇文章的回答。结果发现错误是因为我在最后一轮处理中生成文件,而不是介于两者之间。

所以我的问题是:

  • 在最后一轮生成文件与在两轮之间生成文件如何更改访问代码中生成的文件?

  • 此行为是否有特定原因(与 Java 相关或其他)?

0 投票
0 回答
84 浏览

android - JavaPoet如何给Activity添加参数?

我想生成类似的代码

通过 javaLibrary 中的 JavaPoet ,我在 AbstractProcess.process(...) 中添加了代码,例如:

然后我在ClassNotFoundExeption构建项目时遇到了异常。我应该如何添加参数 MainActivity?谢谢!

0 投票
0 回答
151 浏览

java - javapoet如何处理annotate属性值的AnnotationValue

使用 AbstractProcessor 获取自定义注解的方法 获取注解的属性名称和值 属性值是 AnnotationValue 类型 使用 javapoet AnnotationSpec.Builder(xx) 生成代码。AddMember(String name, String format, Object... args) 生成错误代码: 如:method (@AnnotationName(value = "/" v1 / "/v2"/")) Method (@annotationname (value= {"v1","v2"})) 既然有好几种注解属性类型,那么如何分辨AnnotationValue是哪一个,用javapoet生成正确的代码

这是javapoet当前生成的错误代码:

0 投票
1 回答
552 浏览

java - 如何使用 javapoet 动态生成代码?更改方法参数

我正在尝试生成依赖于其他变量的 java 代码。在这个特定的时刻,我试图根据协议生成代码。所以我可以接收 CoapResponse 对象或 Response 对象形式(javax)。

如果我可以重用相同的代码并以某种方式仅更改变量,我不知道是否可以重复所有代码两次,参数不同。

我要更改的代码如下:

参数可能是 CoapResponse.class 而不是 Response.class。

我对语句有同样的问题,但我解决了创建使用服务在运行时收到的信息的文字。一个例子:

接着:

我不知道我是否可以使用参数做类似的事情,或者即使有其他方法可以动态更改生成。先感谢您。

0 投票
0 回答
154 浏览

java - 使用注释代码中的方法在 Javapoet 中轻松创建(复制)方法

我写了一个注释处理器来创建一个子类。例如,如果您有以下代码:

然后注释处理器生成:

使用了一段时间后,我意识到如果 Bar 有自定义构造函数,这将不起作用。我想创建一个通过构造函数,但我不确定最好的方法是什么。

这是我想要实现的目标:

以上可能会产生以下内容:

0 投票
1 回答
303 浏览

java - 如何使用 JavaPoet 构造具有自定义类型的枚举

是否可以使用 JavaPoet 生成以下枚举类?

我可以创建所有东西,但我在 ITEM 中的初始化块方面遇到了巨大的困难。

我目前的代码是

我能够创造这个

通过像这样调整循环:

这部分没问题,但我不知道如何为这些类生成导入。

我更喜欢第一个选项

但如果无法完成,有人可以建议如何为第二个示例生成导入并调整周期?

非常感谢您的任何建议。

0 投票
2 回答
597 浏览

annotation-processing - 在我项目的源码包下生成java源码

我有我的注释处理器:

在上述process回调中处理注释元素后,我使用JavaPoet生成 java 源代码并为代码创建 Java 文件。构建我的项目时,除了生成的 java 源代码文件默认转到build/generated/sources/myApp/com/my/foo. 如何使生成的 Java 文件位于项目的源代码位置src/main/java/com/my/foo

我的 gradle 构建:

0 投票
0 回答
77 浏览

java - 如何保证在调用函数之前创建java文件

我正在使用 JavaPoet 生成代码,这是我的代码片段的核心部分:

它工作正常。java文件是在硬盘上生成的。现在我有一个新的需求,我需要在硬盘上生成java文件后做一些工作,这就是调用doTask()上面的代码片段。但是我怎么能保证生成java文件然后启动doTask()呢?

请注意,在生成 java 文件时,相应的包也会在运行时创建。所以,java文件所在的目录不是在编译时创建的。

0 投票
1 回答
638 浏览

java - JavaPoet中如何添加参数化的超接口?

我正在编写一个生成 JSON 序列化代码的注释处理器。这是我用来识别POJO需要序列化程序的 s的注释

这是我的序列化程序的基本接口

这是查找该注释并生成序列化程序代码的注释处理器代码

但是我得到一个编译错误,因为我生成的类没有在它的继承中指定泛型参数。我该如何指定?

0 投票
1 回答
5864 浏览

gradle - java.lang.IllegalArgumentException:不支持的类文件主要版本 57

构建应用程序时出现以下错误。任何帮助将不胜感激。

根目录:build.gradle

设置.gradle

应用程序:build.gradle

FAILURE:构建失败并出现异常。*在哪里:设置文件'/Users/Documents/android/MyApplication5/settings.gradle' *出了什么问题:无法编译设置文件'/Users/anand/Documents/android/MyApplication5/settings.gradle'。>启动失败:语义分析期间的一般错误:不支持的主要版本 57 java.lang.IllegalArgumentException:不支持的主要版本 57

1个错误