android - 如何使用 AnnotationProcessor 在带有特定包的 java(生成)目录中编写 kotlin 文件
问题描述
我正在使用注释处理来生成一些代码,我需要在特定包中创建 kotlin 文件这是我的代码
@AutoService(Processor.class)
@IncrementalAnnotationProcessor(IncrementalAnnotationProcessorType.DYNAMIC)
@SuppressWarnings("NullAway")
public final class MyProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
....
}
private void writeKotlinFile(String pack, String fileName, String fileContent, Element it) {
.....
}
}
解决方案
我认为你必须OutputStream
在你的函数中使用这样的writeKolinFilee
:
private void writeKotlinFile(String pack, String fileName, String fileContent, Element it) {
try {
FileObject filerSourceFile = processingEnv.getFiler().createResource(StandardLocation.SOURCE_OUTPUT,
pack, fileName + ".kt", it);
OutputStream outputStream = filerSourceFile.openOutputStream();
outputStream.write(fileContent.getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
推荐阅读
- jquery - 在 Thymeleaf 模板中获取用户 ID
- r - 获取由连字符分隔的值
- python - Python:子进程在 crontab 中不起作用
- android - Angular 5,从图像中获取颜色
- reactjs - React Helmet 不适用于构建命令
- r - 使用 openNLP 在 R 中提取自定义实体
- jmeter - 如何在 JMETER CSV 中查看完整的请求和完整的响应
- javascript - Office.js 在搜索中转义特殊字符
- swift - 从“(键:字符串,值:NSObject)”转换为不相关的类型“字典”
' 总是失败 - php - 如何在html中包含perl脚本