Я использую JavaPoet для генерации классов по списку полей.
Генерация конструктора, который берет этот список полей и превращает его в список параметров, довольно прост со следующим:
val constructor = MethodSpec.constructorBuilder()
for ((fieldName, typeName) <- fields) {
constructor.addParameter(typeName, fieldName)
}
Я также хотел бы сгенерировать статический метод, который создает экземпляр нового объекта сгенерированного класса, который требует от меня создания блока кода, который использует вышеупомянутый список полей.
В настоящее время я достигаю этого с помощью следующего:
method
.addStatement(s"return new $$T(${fields.map(_._1).mkString(", ")})", className)
Это работает, но мне было интересно, есть ли более "идиоматический" способ использовать JavaPoet для создания списка аргументов со встроенной поддержкой шаблонов.