価値、利点または短所によるJavaパス?

Javaは価値渡しです。参照渡しが必要な場合はどうすればいいですか?たとえば、次のコードでは、参照機構によるパスが必要です。

public class BinaryTree {
    public TreeNode root;

    public BinaryTree(){
        root = null;
    }

    public TreeNode insert(TreeNode temp,int x){
        if(temp == null){
            temp = new TreeNode();
            temp.key = x;
            temp.left = temp.right = null;
            return temp;
        }
        if(temp.key > x)
            temp.left = insert(temp.left,x);
        else if(temp.key < x)
            temp.right = insert(temp.right,x);
        return null;
    }
 }

insertroot
で呼び出されたとき、その値を変更するために参照として渡される root
が必要です。しかし、これは値渡しであるため、Javaでは発生しません。 C/C
++では上記を簡単に達成することができました。これはJavaの欠点だとお考えですか?どのようにJavaでこのような問題を解決できますか?

ベストアンサー

Javaでは、参照型がある場合は参照が値渡しされます。

メソッドの内部では、渡されたオブジェクトを変更することができ、呼び出し元にはそれらの変更が表示されます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です