bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

深入淺析Java中對象的深復制與淺復制-創新互聯

本篇文章為大家展示了深入淺析Java中對象的深復制與淺復制,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

專注于為中小企業提供成都網站建設、網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業十堰免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上1000+企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

 Java對象深復制與淺復制實例詳解

我們在遇到一些業務場景的時候經常需要對對象進行復制,對于對象的復制一般有兩種方式,深復制和淺復制

淺復制:對象的復制僅是對象本身,對象引用的其它對方并不會復制。

深復制:對象的復制包含對象引用的對象。

Java所有對象的基類提供了clone方法,但是這個方法是protected native修飾,因此只暴露給之類去重寫,外部是無法直接調用的。

我們現在來測試兩種復制,選是淺復制,淺復制要實現Cloneable接口。

// 課程對象
class Class {
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

}
// 學生對象
class User implements Cloneable {
  private String name;
  private Long id;
  // 課程引用
  private Class c;

  public Class getC() {
    return c;
  }

  public void setC(Class c) {
    this.c = c;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  @Override
  protected Object clone() throws CloneNotSupportedException {
    return super.clone();
  }

  @Override
  public int hashCode() {
    return super.hashCode();
  }

  @Override
  public boolean equals(Object obj) {

    if (obj instanceof User) {
      User user = (User) obj;
      if (this.id == user.getId() && this.getName() == user.getName()) {
        return true;
      }
      if (user.getId().equals(this.id)
          && user.getName().equals(this.name)) {
        return true;
      }
      return false;
    } else
      return false;
  }

}

網頁名稱:深入淺析Java中對象的深復制與淺復制-創新互聯
文章位置:http://vcdvsql.cn/article18/dgoedp.html

成都網站建設公司_創新互聯,為您提供微信公眾號品牌網站設計移動網站建設云服務器電子商務網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司