我正在尝试将内部类(例如接口(interface)Listener {})添加到TypeSpec。另外,我想将类型为Listener的字段添加到我的TypeSpec中。我怎样才能实现这样的目标?

TypeSpec outerClass = ...;
TypeSpec innerClass = ...;
outerClass.addType(innerClass);
outerClass.addField(...); // How can i add a field of type innerClass?

最佳答案

您需要计算类型的全限定名称。看起来像这样:

ClassName outerName = ClassName.get("com.example.project", "Outer");
ClassName innerName = outerName.nestedClass("Inner");

然后,您可以通过outerClass.addField()调用innerName

关于JavaPoet-内部类类型的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41277726/

10-09 09:46