javapoet — как реализовать расширения и реализации

Используя Javapoet, как реализовать следующее:

  1. класс A расширяет класс B

  2. класс C реализует интерфейс D

В javadoc упоминается, как создавать интерфейсы.


person KCMS    schedule 11.01.2016    source источник


Ответы (2)


Используйте TypeSpec.Builder.superclass() для расширений и TypeSpec.Builder.addSuperinterface() для навесного оборудования.

person Jesse Wilson    schedule 11.01.2016
comment
Большое спасибо, Джесси. - person KCMS; 11.01.2016
comment
Я создаю класс, реализующий интерфейс Serializable. Как написать код для генерации идентификатора серийной версии? - person KCMS; 11.01.2016
comment
@urSus хотите отправить запрос на включение? - person Jesse Wilson; 26.02.2016

Предположим, вы хотите создать класс Dummy, который расширяет класс Exception и реализует интерфейс Serializable. Генерируемый код:

...
TypeSpec typeSpec = TypeSpec.classBuilder("Dummy")
  .addSuperinterface(Serializable.class) 
  .superclass(Exception.class) 
  .build();

JavaFile javaFile = JavaFile.builder("sample.javapoet", typeSpec).build();
...

И сгенерированный код будет:

package sample.javapoet;

import java.io.Serializable;
import java.lang.Exception;

class Hoge extends Exception implements Serializable {
}
person xcesco    schedule 28.04.2016