2012-05-04 20 views
0

可能性の重複:
Is Java pass by reference?関数に変数を渡すことは可能ですか?

私は、その関数内で関数に渡された変数の内容を変更する必要があります。

タイプは文字列です。 PlainDocumentの拡張されたクラスのinsertString関数を使用するときに、先行するcharを挿入したいと思います。好き

public class Wrapper 
{ 
    public String text; 
} 

// ... 

public static void changeString(Wrapper w, String newText) 
{ 
    w.text = newText; 
} 

は、あなたがそれを使用することができます:

+1

短答:** no **。 Javaは何も参照渡ししません。参照は値渡しとなりますが、それは**同じものではありません**。 –

+1

また、http://javadude.com/articles/passbyvalue.htm –

+0

まあ、その場で文字列を変更するにはどうすればいいですか? – HoNgOuRu

答えて

4

ラッパークラスを使用します

Wrapper w = new Wrapper(); 
w.text = "old text"; 
changeString(w, "new text"); 
System.out.print(w.text); 

OUTPUT:

新しいテキスト


また、この回答を参照してください。https://stackoverflow.com/a/9404727/597657

2

短い答えはノーですが、あなたは常に中間オブジェクトを使用して、ポインタを「シミュレート」することができます。