💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
对象克隆指的就是对象的复制操作,在Object类里面提供一个专门的克隆方法: ~~~ protected native Object clone() throws CloneNotSupportedException; ~~~ 注意权限,外部要克隆,可以覆写这个方法 此方法上会抛出一个异常CloneNotSupportedException,克隆不支持 **如果要使用对象克隆的类没有实现Cloneable接口,就会抛出此异常** 我们看下Cloneable接口源码,发现他里面没有方法,是标识接口 **注意克隆出来的是新的接口** ~~~ package com.study; //此类的对象可以克隆 class Book implements Cloneable { private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } //原本的权限是protected //此类需要对象克隆操作,所有才需要进行方法的覆写 @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } @Override public String toString() { final StringBuilder sb = new StringBuilder("{"); sb.append("\"title\":\"") .append(title).append('\"'); sb.append(",\"price\":") .append(price); sb.append('}'); return sb.toString(); } } public class HelloWorld { public static void main(String[] args) throws CloneNotSupportedException { Book java = new Book("java", 80); //克隆出来的是个新对象 Object clone = java.clone(); java.setPrice(100); System.out.println(clone); } } ~~~