然后注释掉我们前面提到的 name() 方法:
public interface MappingEnum {
public String getType();
public boolean isKey();
public boolean isNullable();
public String name();
}
public String getType();
public boolean isKey();
public boolean isNullable();
public String name();
}
最后我们编写一个 dbTableCreate() 方法来让其他的枚举类型可重用这个方法:
dbTableCreate("tableName", PersonMapping.values()));
完整的方法:
public String dbTableCreate(String tableName, MappingEnum[] values) {
StringBuilder builder = new StringBuilder("Create table ");
builder.append(tableName);
builder.append("(");
for (MappingEnum column : values) {
builder.append(column.name());
builder.append(" ");
builder.append(column.getType());
builder.append(column.isKey() ? " primary key" : "");
builder.append(", ");
}
builder = new StringBuilder(builder.substring(0, builder.length() - 2));
builder.append(");");
return builder.toString();
}
StringBuilder builder = new StringBuilder("Create table ");
builder.append(tableName);
builder.append("(");
for (MappingEnum column : values) {
builder.append(column.name());
builder.append(" ");
builder.append(column.getType());
builder.append(column.isKey() ? " primary key" : "");
builder.append(", ");
}
builder = new StringBuilder(builder.substring(0, builder.length() - 2));
builder.append(");");
return builder.toString();
}
讲解就到此结束,我们得出了一些结论:
枚举类型可以存储附加的数据和方法
枚举类型可通过接口来定义行为
枚举类型的项行为可通过接口来访问,跟正常的 Java 类无异
values() 方法可用来返回接口中的一个数组
总而言之,你可以像使用普通 Java 类一样来使用枚举类型。