位置:首頁 > Java技術 > java.lang > java.lang.Enum.clone()方法實例

java.lang.Enum.clone()方法實例

java.lang.Enum.clone() 方法保證永遠不會複製枚舉,這是必要的,以保持自己的“singleton”狀態。

聲明

以下是java.lang.Enum.clone()方法的聲明

protected final Object clone() throws CloneNotSupportedException

參數

  • NA

返回值

此方法不返回任何值。

異常

  • CloneNotSupportedException -- 如果對象的類不支持Cloneable接口。子類覆蓋clone方法也會拋出此異常,以指示一個實例不能被克隆。

例子

下麵的例子顯示java.lang.Enum.clone()方法的使用。

package com.yiibai;

import java.lang.*;

// enum showing Mobile prices
enum Mobile {
   Samsung(400), Nokia(250);
  
   int price;
   Mobile(int p) {
      price = p;
   }
   int showPrice() {
      return price;
   } 
}

public class EnumDemo {

   public static void main(String args[]) {

      System.out.println("Enums can never be cloned...");
      EnumDemo t = new EnumDemo() {
         protected final Object clone() throws CloneNotSupportedException {
            throw new CloneNotSupportedException();
         }
      }; 

      System.out.println("CellPhone List:");
      for(Mobile m : Mobile.values()) {
         System.out.println(m + " costs " + m.showPrice() + " dollars");
      }                    
   }
}

讓我們來編譯和運行上麵的程序,這將產生以下結果:

Enums can never be cloned...
CellPhone List:
Samsung costs 400 dollars
Nokia costs 250 dollars