【发布时间】:2018-10-12 19:49:37
【问题描述】:
String fieldName = (fieldchild.getAttribute("Name")); //gives field name : opcode
String fieldCustomID = (fieldchild.getAttribute("ID")); //gives id: 2022
String classTypeofField = IdNameMappingList.get(fieldCustomID).toString(); //give class name OpCodeClass
FieldSpec fieldSpec = FieldSpec.builder(**some code**, fieldName)
.build();
应该给出类似:
OpCodeClass opcode;
也欢迎任何其他解决方法。
【问题讨论】:
-
您不需要实际的类,但您确实需要它的完全限定名称(例如“org.package.OpCodeClass”),因为 JavaPoet 还必须生成导入语句为班级。使用包名和类名,您可以创建一个
ClassName对象以传递给FieldSpec构建器。如果您确定不需要导入(例如,您生成的类与所有操作码类在同一个包中),您可以在不使用 FieldSpec 的情况下将该字段编写为文字。另一种可能性是 search the class via reflection 根据其名称。