12

Using Javapoet, how to implement the following:

  1. class A extends class B

  2. class C implements Interface D

In the javadoc, it is mentioned how to create interfaces.

Bergi
  • 630,263
  • 148
  • 957
  • 1,375
KCMS
  • 207
  • 4
  • 14

2 Answers2

26

Use TypeSpec.Builder.superclass() for extends, and TypeSpec.Builder.addSuperinterface() for implements.

Jesse Wilson
  • 39,078
  • 8
  • 121
  • 128
10

Suppose you want to generate a Dummy class that extends Exception class and implements the Serializable interface. The generate code is:

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

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

And the generated code will be:

package sample.javapoet;

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

class Hoge extends Exception implements Serializable {
}
xcesco
  • 4,690
  • 4
  • 34
  • 65