Search code examples
javaenumsjavapoet

Enum generation using JavaPoet


How to generate the following enum class using JavaPoet?

public enum Planet {
    MERCURY (3, 2),
    VENUS   (4, 6)
}

Solution

  • TypeSpec planetTypeSpec = 
     TypeSpec.enumBuilder("Planet")
          .addModifiers(Modifier.PUBLIC)
          .addEnumConstant("MERCURY", TypeSpec.anonymousClassBuilder("$L, $L",3,2).build())
          .addEnumConstant("VENUS", TypeSpec.anonymousClassBuilder("$L, $L",4,6).build())
          .build();