2016-12-22 2 views
4

Я пытаюсь добавить внутренний класс (например, прослушиватель интерфейса {}) в TypeSpec. Также я хочу добавить поле типа Listener в свой TypeSpec. Как я мог добиться чего-то подобного?JavaPoet - поле типа внутренний класс

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

ответ

2

Вам необходимо будет вычислить полное имя типа. Это будет выглядеть следующим образом:

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

Тогда вы можете вызвать outerClass.addField() прохождения innerName.

Смежные вопросы