开发者社区> 问答> 正文

设计枚举通用行为

好吧,我今天的问题是:

我有一个带有文件头的枚举。

我有一个将这些标题导出为字符串的函数

运行多个项目,我想使其在我们的私有库中通用。

当前功能:

private static String getHeaders() {
     StringBuilder sb = new StringBuilder();
     for(HeadersEnum header : HeadersEnum.values()){
        sb.append(header.getExportLib());
     }
     return sb.toString();
 }

目标是这样的:

private static String getHeaders(ExportableCSV<Enum<T>> data) {
    StringBuilder sb = new StringBuilder();
    for( ExportableCSV<Enum> header : data.values()){
       sb.append(header.getExportLib());
    }
    return sb.toString();
}

我知道我们无法使用Enum进行继承,所以我创建了一个接口“ ExportableCSV”:

public interface ExportableCSV<T extends Enum<T>> {

public static final String exportLib = "";

public static String getExportLib() {
    return exportLib;
}
}

这是很基本的,但是在我看来,任何实现此ExportableCSV的枚举都应该可以访问我的exportLib()函数。

public enum HeadersEnum implements ExportableCSV<HeadersEnum>{
    foo("foo;"),
    bar("bar;");

private String exportLib; 当然,我对通用函数的目标方法不是编译,并且我不是很了解我能做什么和不能做什么。

展开
收起
几许相思几点泪 2019-12-10 19:48:53 583 0
0 条回答
写回答
取消 提交回答
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载