首页 > 解决方案 > 如何使用 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) {
     .....
       
    }
}

标签: androidkotlin

解决方案


我认为你必须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();
    }
}


推荐阅读