アプリケーションのさまざまなユーティリティクラスで特に使用される静的メソッドのスレッドセーフを確保できる一般的な方法またはルールの出口はありますか? ここで特に指摘したいのは、Web アプリケーションのスレッド セーフです。
不変オブジェクトをパラメーターとして使用する静的メソッドはスレッドセーフであり、可変オブジェクトはそうではないことはよく知られています。
を操作するためのユーティリティ メソッドがありjava.util.Date
、そのメソッドが のインスタンスを受け入れる場合java.util.Date
、このメソッドはスレッド セーフではありません。次に、パラメーターの受け渡し方法を変更せずにスレッドセーフにする方法は?
public class DateUtils {
public static Date getNormalizeDate(Date date) {
// some operations
}
}
また、クラスはjavax.faces.context.FacesContext
可変ですか?このクラスのインスタンスをそのような静的ユーティリティ メソッドに渡すことはスレッド セーフですか?
インスタンスをパラメーターとして渡すことができる、または渡すことができないクラスのこのリストは、長くなる可能性があります。では、このようなユーティリティ クラスのコードを記述する際に留意すべき点は何でしょうか。