在 JavaPoet 中,我需要创建一个TypeName
表示给定名称的内部类的实例。
我有一个TypeSpec.Builder classBuilder
外部班级。不知道下一步该做什么。
请注意,此内部类仅存在于生成的程序中,而不存在于生成程序中。
在 JavaPoet 中,我需要创建一个TypeName
表示给定名称的内部类的实例。
我有一个TypeSpec.Builder classBuilder
外部班级。不知道下一步该做什么。
请注意,此内部类仅存在于生成的程序中,而不存在于生成程序中。
像这样创建类名:
ClassName mapEntry = ClassName.get("java.util", "Map", "Entry");
然后你使用正常的语法来创建它。
addStatement("$T instance = new $T()", mapEntry, mapEntry);
所以,假设你有一些来自 TypeSpec.Builder 的 TypeSpec:
TypeSpec.Builder classBuilder = new TypeSpec.Builder();
TypeSpec typeSpec = classBuilder.build();
之后你需要创建 JavaFile 并为这个类指定你的包名:
String packageName = "your.package.name";
JavaFile javaFile = JavaFile.builder(packageName, typeSpec).build();
现在,您可以像这样在其他文件中使用此 JavaFile(您需要使用以前的 JavaFile 作为参数):
ClassName className = ClassName.get(javaFile.getPackageName(), javaFile.getTypeSpec().getName());
TypeSpec.Builder otherClassBuilder = new TypeSpec.Builder();
otherClassBuilder.addStatement("$T instance = new $T()", className , className );
因此,您可以使用 className 作为生成的类来生成其他类。