0

Javaでは、getterメソッドで文字列であるフィールドを返すときに、別の文字列を作成することをお勧めします。my_nameは、クラスの文字列フィールドです。

public String getName()
{
    String rString = my_name.toString();
    return rString;
}
4

2 に答える 2

12

Javaでは、getterメソッドで文字列であるフィールドを返すときに、別の文字列を作成することをお勧めします。my_nameは、クラスの文字列フィールドです。

いいえ、そうする意味はありません。Javaの文字列は不変であるため、メソッドによって返される文字列を変更しようとするとgetter(つまり、現在文字列オブジェクトを指している文字列参照を別の文字列に再割り当てすると)、新しい文字列が作成され、参照が割り当てられます。その文字列を現在の文字列参照に変換し、元の文字列から切り離します。

ただし、mutableのようなフィールドarrayがある場合、その場合、オブジェクトを不変にしたい場合は、その防御コピーを返すことをお勧めします。

于 2013-02-11T18:08:07.840 に答える
2

いいえ。Java の文字列は不変であるため、getter を呼び出している人が変更することはできません。

また、Java が文字列をプールして再利用する方法により、コードはフィールドを直接返すのとまったく同じことを行います。

于 2013-02-11T18:09:53.067 に答える