用AI写了个生成多行字符串的工具
用AI写了个生成多行字符串的工具
在编程中,很多时候我们需要处理多行文本,例如读取文件内容、构建HTML或XML等,而多行字符串的需求一直都存在。使用多行字符串可以轻松地在代码中嵌入多行文本,使得代码更加清晰易懂。因此,多行字符串是非常实用的编程工具之一。
Java中的多行字符串特性要JDK 15+,这可能会对一些项目造成限制。网上也找了也有一些解决方案,链接附在末尾。
multiline-string这个思路也有点意思,但是不支持Java 11。于是就决定自己也写一个看看。
prompt: 写一个Java javax.annotation.processing.Processor例子
1 | // 定义注解 |
例子基本上把框架写了出来,但有不少胡说八道的成分。比如凭空造了一个 generateJavaFile 方法。但是这个是关键,我开始想在原类中直接修改变量的值,或者增加一个方法,中间AI推荐JavaPoet类库,asm的类库,但是最终都没有搞定。希望有经验的朋友不吝赐教。
最后退而求其次,决定生成一个新的类,然后再静态导入方法。
1 | import static io.code123.MultilineUtils.*; |
**TIPS:**记录过程中的几个tips。
processingEnv.getElementUtils().``getDocComment(element)可以取到字段或者类的注释,不包含/*和*等字符- 在构建过程process方法可能会多次调用到,导致最后
processingEnv.getFiler().createSourceFile("io.code123.MultilineUtils")方法时候会报重复创建的错误。具体为什么会多次调用也还不清楚,第一次会传入一个空的elements列表。