Java Sun CodeModel-如何使用多个参数创建枚举
我想使用Sun的codemodel创建一个类似于以下代码段的枚举类Java Sun CodeModel-如何使用多个参数创建枚举,java,sun-codemodel,Java,Sun Codemodel,我想使用Sun的codemodel创建一个类似于以下代码段的枚举类 public enum REPORT_COLUMNS { MONTH("month", true, false), DAY("day", false, true); private final String column; private final boolean filterable; private final boolean includeInHavingClause;
public enum REPORT_COLUMNS {
MONTH("month", true, false),
DAY("day", false, true);
private final String column;
private final boolean filterable;
private final boolean includeInHavingClause;
private REPORT_COLUMNS(String column, boolean filterable, boolean includeInHavingClause) {
this.column = column;
this.filterable = filterable;
this.includeInHavingClause = includeInHavingClause;
}
public String getColumn() {
return column;
}
public boolean isFilterable() {
return filterable;
}
public boolean includeInHavingClause() {
return includeInHavingClause;
}
}
我能够为枚举的构造函数、字段和getter方法生成代码。但是,我无法用三个值初始化枚举常量。JDefinedClass有一个方法enumConstant,它只接受enum常量的名称作为参数。我也阅读了JEnumConstant类的文档,但找不到任何可以向枚举常量添加三个值的内容。您可以将JEnumConstant.arg与Jexpr.lit一起使用
JEnumConstant enumMonth = definedClass.enumConstant("MONTH");
enumMonth.arg(lit("month"));
enumMonth.arg(lit(true));
enumMonth.arg(lit(false));
我为此编写了一些示例代码,在这里查看完整的示例:您可以将JEnumConstant.arg与Jexpr.lit一起使用
JEnumConstant enumMonth = definedClass.enumConstant("MONTH");
enumMonth.arg(lit("month"));
enumMonth.arg(lit(true));
enumMonth.arg(lit(false));
我为此编写了一些示例代码,请在此处查看完整示例:更新的github url:updated的github url: