如何在Java中使用Enum

如何在Java中使用Enum,java,enums,grouping,Java,Enums,Grouping,我想知道如何在java中正确使用enum。 我已经实现了下面的代码,它给出了一个错误 public class GlobalVariables { public enum Algorithm{louvain, kmeans}; public enum Evolution{survive,merge,split,dissolve}; /** * GED alpha threshold */ public static float GED_INCLUSION_ALPHA = 0.5f;

我想知道如何在java中正确使用enum。 我已经实现了下面的代码,它给出了一个错误

public class GlobalVariables {

public enum Algorithm{louvain, kmeans};

public enum Evolution{survive,merge,split,dissolve};

/**
 * GED alpha threshold
 */
public static float GED_INCLUSION_ALPHA = 0.5f;

/**
 * GED beta threshold
 */
public static float GED_INCLUSION_BETA = 0.7f;}
你知道我可能做错了什么吗

错误: 这条线上有多个标记

  • louvain无法解析为类型
  • “enum”不应用作标识符,因为它是源中的保留关键字 上的1.5级
  • 语法错误,请插入“;”以完成块语句
  • 语法错误,请插入“;”以完成ClassBodyDeclarations
  • 无法将枚举解析为类型
  • 无法将枚举解析为类型
  • “enum”不应用作标识符,因为它是源中的保留关键字 上的1.5级
  • 令牌“,”上出现语法错误,请删除此令牌

我会看到您的枚举与开关一起使用; 根据算法(类型),我们为包含方法的算法接口选择一个特定的实现:executeAlgorithm,我们可以进一步调用该方法

以下代码正在Java 1.6及更高版本中编译和使用(检查Java版本,因为1.5中添加了枚举)


我会看到您的枚举与开关一起使用; 根据算法(类型),我们为包含方法的算法接口选择一个特定的实现:executeAlgorithm,我们可以进一步调用该方法

以下代码正在Java 1.6及更高版本中编译和使用(检查Java版本,因为1.5中添加了枚举)

此错误:

“enum”不应用作标识符,因为它是源级别1.5上的保留关键字

似乎暗示您正在使用<1.5的源版本进行编译。Java 1.5中引入了枚举

检查编译器或IDE设置

或者,问题中未显示的某些代码中可能存在语法错误。

此错误:

“enum”不应用作标识符,因为它是源级别1.5上的保留关键字

似乎暗示您正在使用<1.5的源版本进行编译。Java 1.5中引入了枚举

检查编译器或IDE设置


或者,您的问题中未显示的某些代码中可能存在语法错误。

我已检查了您在此处发布的代码。它与java编译器1.5版及以上版本配合良好。 请记住,enum是在Java5中引入的,所以如果您使用的是任何编译器,请检查IDE中的编译器设置,或者您可以从终端检查编译器版本

java版本


您可以查看有关枚举的更多信息;如何在java中使用enum以及有关它的更多详细信息,我已经检查了您在这里发布的代码。它与java编译器1.5版及以上版本配合良好。 请记住,enum是在Java5中引入的,所以如果您使用的是任何编译器,请检查IDE中的编译器设置,或者您可以从终端检查编译器版本

java版本


您可以查看有关枚举的更多信息;如何在java中使用enum以及来自

的关于它的更多详细信息显示您的错误?我们眼中没有内置Java编译器。什么样的错误?请发布错误消息。编译错误还是运行时错误?对于运行时错误,发布完整堆栈跟踪。请研究以改进问题。它将帮助您获得答案,并帮助我们尝试给您一个答案。当您尝试在此类中使用枚举时,是否出现错误?如果是,您是如何使用它们的?错误是什么?显示您的错误?我们眼中没有内置Java编译器。什么样的错误?请发布错误消息。编译错误还是运行时错误?对于运行时错误,发布完整堆栈跟踪。请研究以改进问题。它将帮助您获得答案,并帮助我们尝试给您一个答案。当您尝试在此类中使用枚举时,是否出现错误?如果是,您是如何使用它们的?错误是什么?谢谢(使用源代码版本<1.5)谢谢(使用源代码版本<1.5)
public class GlobalVariables {


    interface Algorithm {
        void executeAlgorithm();
    }

    public enum AlgorithmType {louvain, kmeans}

    public enum Evolution {survive, merge, split, dissolve}

    /**
     * GED alpha threshold
     */
    public static float GED_INCLUSION_ALPHA = 0.5f;

    /**
     * GED beta threshold
     */
    public static float GED_INCLUSION_BETA = 0.7f;


    public static void main(String[] args) {
        AlgorithmType algorithmType = AlgorithmType.louvain; //initialize it from somewhere

        Algorithm algorithm = null;
        switch (algorithmType) {
            case louvain: {
                algorithm = new LouvainAlgorithmImplementation();
                break;
            }
            case kmeans: {
                algorithm = new KMeansAlgorithmImplementation();
                break;
            }
            default: {
                // do something for default;
                algorithm = new DefaultAlgorithmImplementation();
            }
        }
        algorithm.executeAlgorithm();
    }

    static class LouvainAlgorithmImplementation implements Algorithm {
        @Override
        public void executeAlgorithm() {
            System.out.println("Louvain was called");
        }
    }

    static class KMeansAlgorithmImplementation implements Algorithm {
        @Override
        public void executeAlgorithm() {
            System.out.println("KMeans was called");

        }
    }

    static class DefaultAlgorithmImplementation implements Algorithm {
        @Override
        public void executeAlgorithm() {
            System.out.println("Default was called");
        }
    }

}