当前位置: 首页 > 知识库问答 >
问题:

创建枚举以传递方法中的值

田远
2023-03-14

我有一个用于jenkins pipline的小项目,代码是用groovy编写的,我创建了一个枚举,如下所示:

enum FileExtension {

CSV, JSON, PROPERTIES;

static String getSrcFile(FileExtension fileExtension) {
    String src_File = "./master.csv";
    switch (fileExtension) {
        case CSV:
            src_File = "./master.csv";
            break;
        case JSON:
            src_File = "./master.json";
            break;
        case PROPERTIES:
            src_File = "./master.properties";

    };
    return src_File;
};

static String getFileFormat(FileExtension fileExtension) {
    String fileFormat = "csv";

    switch (fileExtension) {
        case CSV:
            fileFormat = "csv";
            break;
        case JSON:
            fileFormat = "json";
            break;
        case PROPERTIES:
            fileFormat = "properties";

    };
    return fileFormat;
};
public class Hello {
public static void main(String[] ars) {
    FileExtension fileExtension = FileExtension.JSON;
    System.out.println(test(FileExtension.CSV));

}

public static String test(FileExtension fileExtension){

     return fileExtension.getSrcFile(fileExtension);
  }

}

共有1个答案

晏兴发
2023-03-14
enum FileExtension {

    CSV, JSON, PROPERTIES;

    public String getSrcFile() {
        return "./master." + getFileFormat();
    }

    public String getFileFormat() {
      return toString().toLowerCase();
    }
}

若要对所有枚举值进行测试,可以执行以下操作:

for (FileExtension fileExtension : FileExtension.values() ) {
    // do your tests 
}

如果您真的想要一个好的设计,不要将具有硬编码名称“master”的方法getsrcfile()放入枚举代码中。或者至少,将此名称作为参数传递。

 类似资料:
  • 问题内容: 因此,我对Java枚举中是否可以包含函数感到困惑。我正在制作一个简单的html编辑器,并希望使用枚举来表示html标签,是的,我知道这不是解决问题的最佳方法,而是我小组决定实现它的方法。 所以我一直在尝试做这样的事情,但是当我试图称其为静态方法时,我想我想知道这是否正确,或者是否有更好的方法来实现它而不是公开成为 问题答案: 是的,Java枚举可以具有功能。 http://docs.o

  • 问题内容: 使类型代表一组字符串的最佳方法是什么? 我尝试了这个: 然后如何将它们用作? 问题答案: 我不知道您想做什么,但这是我实际上翻译示例代码的方式。 另外,您可以为创建一个getter方法。 你现在可以做

  • 问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它:

  • 问题内容: 我想声明一个枚举Direction,它具有一个返回相反方向的方法(以下语法不正确,即,不能实例化枚举,但它说明了我的观点)。这在Java中可行吗? 这是代码: 问题答案: 对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法- 在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为s。 因此,

  • 问题内容: 枚举可以有抽象方法吗?如果是这样,有什么用,并给出一个场景来说明这种用法。 问题答案: 是的,但是您可能更喜欢实现接口的枚举,请看这里。我认为它看起来好多了。这是抽象方法的示例:

  • 我有一个包含两个值的枚举类,我想创建一个接收一个值并返回另一个值的方法。我还想保持类型安全(这就是为什么我使用枚举类而不是枚举)。 http://www.cplusplus.com/doc/tutorial/other_data_types/没有提到任何关于方法的内容,但是,我的印象是,任何类型的类都可以有方法。