In this example, we will demonstrate the usage of java.lang.Object.clone() method with an example.
Object clone() Method Examples
The clone() method creates and returns a copy of this object.1. Simple Object clone() Method Example
This example shows the usage of the clone() method:
public class ObjectClass {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
Date date2 = (Date) date.clone();
System.out.println(date2.toString());
}
}
Output:
Tue Sep 04 14:15:00 IST 2018
Tue Sep 04 14:15:00 IST 2018
2. Object clone() Method Example using Closable interface
In this example, we are using the Closable interface and clone() method together.
First, create a Person class which implements a Closable interface.
public class Person implements Cloneable {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public Object clone() throws CloneNotSupportedException {
Person person = (Person) super.clone();
return person;
}
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName + "]";
}
}
Now, test above Person.clone() method using main() method:
public static void main(String[] args) throws CloneNotSupportedException { Person person = new Person(); person.setFirstName("Ramesh"); person.setLastName("Fadatare"); System.out.println(person.toString()); Person person2 = (Person) person.clone(); System.out.println(person2.toString()); }
Output:
Person [firstName=Ramesh, lastName=Fadatare]
Person [firstName=Ramesh, lastName=Fadatare]
Note that we have to override the clone() method from the Object class and made a call to Object clone() method using super.clone().@Override
public Object clone() throws CloneNotSupportedException {
Person person = (Person) super.clone();
return person;
}