staticメソッドのPreferencesオブジェクトの取得

この項の例では、staticメソッドでシステムおよびユーザーPreferencesオブジェクトを取得する方法を示します。

staticメソッド(またはstaticイニシャライザ)内では、次のように、パッケージ名を明示的に指定する必要があります。

static String ourNodeName = "/com/greencorp/widget";
static void getPrefs() {
    Preferences prefs = Preferences.userRoot().node(ourNodeName);

    ...
}

通常は、システム設定オブジェクトをstaticイニシャライザ内で1回取得し、システム設定が必要なときにそれを使用します。

static Preferences prefs =  Preferences.systemRoot().node(ourNodeName);

通常は、ユーザー設定オブジェクトの場合も、同じ方法を適用します。ただし、コードをサーバー内で使用し、複数のユーザーが同時にまたは順番に実行する場合は、この方法は使用しません。このようなシステムでは、userNodeForPackageおよびuserRootが呼出し側のユーザーに対して適切なノードを返します。つまり、userNodeForPackageまたはuserRootの呼出しは、適切なスレッドから適切なタイミングに行うことが重要になってきます。このようなサーバー環境でコードを使用する場合は、前の例のように、使用する直前にユーザー設定オブジェクトを取得することをお薦めします。