JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java枚举为什么不能是final呢? java中枚举用法

wys521 2024-10-30 05:56:47 精选教程 33 ℃ 0 评论

什么是枚举

枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。本质就是,在一个类里定义几个静态变量,每个变量都是这个类的实例。

什么是final

final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。

在使用匿名内部类的时候可能会经常用到final关键字,Java中的String类就是一个final类

枚举为什么不能是final

public static final enum Size { 
        BIG,
        SMALL,
        MEDIUM
};

看下编译

> javac Size.java
> javap -c Size.class
Compiled from "Size.java"
public final class Size extends java.lang.Enum {
  public static final Size BIG;
  public static final Size SMALL;
  public static final Size MEDIUM;

  public static Size[] values();
  ......
  public static Size valueOf(java.lang.String);
  ......
  static {};
  ......

Java不允许你创建一个扩展enum类型的类。

因此,枚举本身总是最终的,所以使用final关键字是多余的。

当然,从某种意义上说,enums不是最终的,因为你可以为枚举描述符内的每个字段定义一个匿名子类。但是使用final关键字来防止这些类型的描述是没有什么意义的,因为人们必须在同一个.java文件中创建这些子类,并且有权这样做的任何人都可以轻松地移除final关键字。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表