日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你能做的是:

public MyClassExtension(MyClass instance) {

super(...);

new_field = some_value;

}

在創建子類時,最好調用超級構造函數(否則默認情況下將調用默認的超級構造函數)。

為什么這樣?因為它限制了重新定義相同初始化所需的次數。例如,當您想要創建具有默認值的對象時。您只在母類中執行一次,并在創建子類時默認調用默認的超級構造函數。您還可以覆蓋子類中的默認值,具體取決于您定義類的方式。

這是一個例子:假設你有像這樣定義的MyClass:

class MyClass {

protected Object field1;

protected Object field2;

protected Object field3;

public MyClass(MyClass c) {

field1 = c.field1; // Remark: this is only the setup of

field2 = c.field2; // the reference. If you want to create a

field3 = c.field3; // copy, please do so with a constructor.

}

public MyClass(Object field1, Object field2, object field3) {

this.field1 = field1; // Same remark here

this.field2 = field2; // (about references).

this.field3 = field3;

}

}

你在這里看到MyClass定義了2個構造函數:一個所謂的復制構造函數,它將MyClass對象作為參數,構造函數包含所有需要的字段。

然后,當您想要創建一個以MyClass對象作為參數的子類時,您可以這樣做:

class MyClassExtension extends MyClass {

private Object newField;

public MyClassExtension(MyClass c, Object newField) {

super(c);

this.newField = newField;

}

}

但你也可以這樣做:

class MyClassExtension {

private Object newField;

public MyClassExtension(MyClass c, Object newField) {

super(c.field1, c.field2, c.field3);

this.newField = newField;

}

}

因此,您限制了對MyClass對象參數的訪問次數,并且子類MyClassExtension構造函數是簡潔的。

請注意,您必須在程序中的某個位置或其他位置提供此代碼。您必須為您的編譯器定義如何在給定MyClassExtension對象的情況下構建MyClass。要么代碼在MyClass,要么在MyClass和MyClassExtension。我只是提供了一種減少代碼庫的方法,并且如果要更改代碼中的任何內容,則限制所需的更改次數。使用此解決方案,如果您更改MyClass構造函數,MyClassExtension也將受到影響(除非您強制執行其他操作)。

另請注意,您需要自己定義復制構造函數,否則編譯器將無法知道您是要進行深層復制還是僅僅引用復制。更多信息,請訪問http://blog.amitinside.com/Copy-Constructor-in-Java/

總結

以上是生活随笔為你收集整理的java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。