Java中的类型安全枚举是什么?

枚举是 类型安全的,这意味着枚举具有自己的命名空间,除了枚举常量中指定的值之外,我们无法分配其他任何值。Java 1.5版本引入了Typesafe枚举。另外,枚举是引用类型,这意味着它的行为更像是类或接口。作为程序员,我们可以在枚举声明内创建方法和变量。

例1

import java.util.*;
enum JobType {
   permanent,
   contract
}
public class EnumTest1 {
   public static void main(String []args) {
      print(JobType.values());
   }
   public static void print(JobType[] list) {
      for (int i=0; i < list.length; i++) {
         System.out.println(list[i]);
      }
   }
}

输出结果

permanent
contract


例2

enum JobType {
   permanent {
      public void print(String str1) {
         System.out.println("This is a permanent " + str1);
      }
   },
   contract {
      public void print(String str2) {
         System.out.println("This is a contarct " + str2);
      }
   };
   abstract void print(String name);
}
public class EnumTest2 {
   public static void main(String[] args) {
      JobType dt1 = JobType.permanent;
      JobType dt2 = JobType.contract;
      dt1.print("job");
      dt2.print("job");
   }
}

输出结果

This is a permanent job
This is a contract job