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

2020年11月1日

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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");
}
}
}
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"); } } }
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