介 绍
资料:
配 置
compile 'com.squareup:javapoet:1.9.0'
简单使用
1. 常用类
- MethodSpec:代表一个方法或者构造函数
- TypeSpec:代表一个类,接口或者枚举声明
- FieldSpec:代表一个成员变量,一个字段声明
- JavaFile:包含一个顶级类的Java文件
2. Demo
MethodSpec main = MethodSpec.methodBuilder("main") // 方法名
.addModifiers(Modifier.PUBLIC, Modifier.STATIC) // 修饰关键词
.addParameter(String[].class, "args")
.addStatement("$T.out.println($S)", System.class, "Hello World")
.build();
TypeSpec typeSpec = TypeSpec.classBuilder("HelloWorld")
.addModifiers(Modifier.PUBLIC) // 修饰词
.addMethod(main) // 将main方法添加到类里面
.build();
JavaFile javaFile = JavaFile.builder("dc.edu.ntu.permissiondispatcher.autogen", typeSpec).build();
javaFile.writeTo(new File("E:\\AndroidProject\\PermissionDispatcher\\app\\src\\main\\java"));
JavaFile
负责输出 Java 文件,因为TypeSpec
已经设定了类名字,所以文件默认就会输出以该类命名的Java文件,如上面的例子会输出在包为dc.edu.ntu.permissiondispatcher.autogen
的名为HelloWorld.java
的文件。