java - 枚举和最终变量有什么区别?

标签 java enums

<分区>

我正在尝试阅读枚举以更好地理解它们。

从枚举的 javadocs 我得到以下内容:

An enum type is a special data type that enables for a variable to be a set of predefined constants.

对我来说,这听起来很像 final 变量。

  1. 真正的区别是什么?
  2. 你什么时候会用一个代替另一个?
  3. enum 只是一个可以是一组事物的最终变量吗?

最佳答案

区别在于枚举提供类型安全

让我们使用这个枚举

public enum MuEnum {
    FIRST("First"), SECOND("Second");

    private String value;

    MyEnum(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

考虑以下示例:

public void myMethod(MyEnum parameter) { .. }

在这里,您只能传递 MyEnum 值(FIRSTSECOND),而如果您的方法签名是:

public void myMethod(String parameter) { .. }

您将能够传递一个无效参数(某些 String,其内容不同于 "First""Second")。

关于java - 枚举和最终变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662018/

相关文章:

java - 程序完成后数据存储

java - android从fragment中获取数据

c# - 如何使用 EF 5 存储枚举列表

memory - 如何在 Rust 的枚举中找到最大的变体?

C# 强制静态字段初始化

java - System.setProperty 和 System.getProperty

java - 我想将最大数字从一个文件复制到另一个文件?但是,我在输入数字时遇到一些问题

java - 陷入使用 spring 上传和下载图像的困境

c# - 如何更新除特定值之外的枚举值

c - 嵌套 For 循环发牌