「Java]java.lang.Enum.clone()メソッドを使うサンプル

2020年11月1日

java.lang.Enum.clone()説明
enumが複製されないことを保証します。「シングルトン」ステータスを保持するために必要です。
Javaコード

package com.arkgame.study;

public class LangEnumDemo {

      //enum definition
      enum User {
            AA(21), BB(25);

            int age;

            User(int p) {
                  age = p;
            }

            int showAge() {
                  return age;
            }
      }

      @SuppressWarnings("unused")
      public static void main(String[] args) {
            System.out.println("Enums can never be cloned");
            LangEnumDemo tt = new LangEnumDemo() {
                  protected final Object clone() throws CloneNotSupportedException {
                        throw new CloneNotSupportedException();
                  }
            };

            System.out.println("Enums list");
            for (User m : User.values()) {
                  System.out.println(m + " age " + m.showAge() + " 1111");
            }
      }
}

結果
Enums can never be cloned
Enums list
AA age 21 1111
BB age 25 1111

Java

Posted by arkgame