包含クラスのPreferencesオブジェクトの取得
この項の例では、包含クラスに所属するシステムおよびユーザーPreferencesオブジェクトを取得する方法を示します。これらの例は、インスタンス・メソッド内でのみ動作します。
次の例では、ユーザーごとの設定値を取得しています。取得した各設定値には、適切なデフォルトが割り当てられます。これらのデフォルトは、設定値が設定されていない場合、またはバッキング・ストアにアクセスできない場合に返されます。
ここでは、インラインのStringリテラルではなく、static finalフィールドが、キー名(NUM_ROWS
およびNUM_COLS
)として使用されています。このようにすると、キー名の入力ミスによる実行時バグが発生する可能性が減少します。
package com.greencorp.widget;
import java.util.prefs.*;
public class Gadget {
// Preference keys for this package
private static final String NUM_ROWS = "num_rows";
private static final String NUM_COLS = "num_cols";
void getPrefs() {
Preferences prefs = Preferences.userNodeForPackage(Gadget.class);
int numRows = prefs.getInt(NUM_ROWS, 40);
int numCols = prefs.getInt(NUM_COLS, 80);
...
}
前述の例では、ユーザーごとの設定値を取得しています。システムごとに1つの値が必要な場合は、getPrefs
の1行目を次のように置き換えます。
Preferences prefs = Preferences.systemNodeForPackage(Gadget.class);