1. Clone() メソッドはオブジェクトを生成し、生成されたオブジェクトの値はメソッドの使用後に割り当てる必要があります。
Vector v2 = (Vector)v.clone();
2. Clone() メソッドは、オブジェクト内の保護された型のメソッドです。作成するクラスで Clone() メソッドを使用する必要がある場合は、それを自分で書き直して、Cloneable インターフェイスを継承する必要があります。
package tweleve;import java.util.*;class MyObject implements Cloneable {int i; MyObject(int ii) { i = ii; }public Object clone() { Object object = null;try { object = super.clone(); } catch (CloneNotSupportedException e) { System.out.println("MyObject can't clone"); }return object; }public String toString() {return Integer.toString(i); } }public class LocalCopy {static MyObject g(MyObject v) { v.i++;return v; }static MyObject f(MyObject v) { v = (MyObject) v.clone(); v.i++;return v; }public static void main(String[] args) { MyObject aMyObject = new MyObject(11); MyObject bMyObject = g(aMyObject);if (aMyObject == bMyObject) System.out.println("a==b");elseSystem.out.println("a!=b"); System.out.println("a=" + aMyObject); System.out.println("b=" + bMyObject); MyObject cMyObject = new MyObject(31); MyObject dMyObject = f(cMyObject);if (cMyObject == dMyObject) System.out.println("c==d");elseSystem.out.println("c!=d"); System.out.println("c=" + cMyObject); System.out.println("d=" + dMyObject); } }
3. クラスを複製する場合は、次の手順に従う必要があります: (1) Cloneable インターフェイスを実装します
(2) Clone() メソッドをオーバーライドします
.cloね()
ing メソッドは実際には新しい String クラスを作成して返しますが、+ と += を含めて元の String クラスは変更されていないため、文字列を操作する場合は StringBuffer の方が効率的です。
りー以上がJava でオブジェクトを渡したり返したりするサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。