メモ、備忘録、その他雑記を記載します。
ただし、このHPに記載している情報を利用した結果 損失・損害等が発生したとしても筆者は責任を持ちません。
Stringはint型等と同じ扱いで、値渡しはできるが参照渡しできない。
参照渡ししたい場合はStringBufferを使用する。
import java.io.*;
/**
* メインクラス
* @author
* @version 1.0
*/
public class Main
{
/**
* アプリケーション起動処理
* @param args コマンドライン引数
* @return なし
*/
public static void main( String[] args )
{
System.out.println("Hello");
String str = "123";
System.out.println( str );
Func1( str );
System.out.println( str );
System.out.println();
StringBuffer sb = new StringBuffer( "123" );
System.out.println( sb );
Func2( sb );
System.out.println( sb );
System.out.println();
}
public static void Func1( String str )
{
str = "456";
// これは値渡しでコピーしたstrを変更しているだけ
// ×
}
public static void Func2( StringBuffer sb )
{
sb.append( "456" );
// 参照渡ししたオブジェクトに対して文字列操作
// ○
}
}
参照渡ししたい場合はStringBufferを使用する。
import java.io.*;
/**
* メインクラス
* @author
* @version 1.0
*/
public class Main
{
/**
* アプリケーション起動処理
* @param args コマンドライン引数
* @return なし
*/
public static void main( String[] args )
{
System.out.println("Hello");
String str = "123";
System.out.println( str );
Func1( str );
System.out.println( str );
System.out.println();
StringBuffer sb = new StringBuffer( "123" );
System.out.println( sb );
Func2( sb );
System.out.println( sb );
System.out.println();
}
public static void Func1( String str )
{
str = "456";
// これは値渡しでコピーしたstrを変更しているだけ
// ×
}
public static void Func2( StringBuffer sb )
{
sb.append( "456" );
// 参照渡ししたオブジェクトに対して文字列操作
// ○
}
}
PR
コメントを書く