Java.lang.Enum.clone() Method



Description

The java.lang.Enum.clone() method guarantees that enums are never cloned, which is necessary to preserve their "singleton" status.

Declaration

Following is the declaration for java.lang.Enum.clone() method

protected final Object clone() throws CloneNotSupportedException

Parameters

NA

Return Value

This method does not return any value.

Exception

CloneNotSupportedException − if the object's class does not support the Cloneable interface. Subclasses that override the clone method can also throw this exception to indicate that an instance cannot be cloned.

Example

The following example shows the usage of java.lang.Enum.clone() method.

package com.tutorialspoint;

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");
      }                    
   }
}

Let us compile and run the above program, this will produce the following result −

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