- 直系の既知のサブクラス:
AbstractPreferences
設定ノードは2つの個別のツリーで構成されます。一方はユーザー設定用、もう一方はシステム設定用です。 それぞれのユーザーは個々のユーザー設定ツリーを持ち、そのシステムのすべてのユーザーはシステム設計ツリーを持ちます。 ユーザー設定ツリーとシステム設定ツリーの定義は、実装ごとに異なります。 ユーザー設定ツリーには、フォント選択、カラー選択、特定のアプリケーションに設定したウィンドウ位置やサイズなどが格納されます。 システム設定ツリーには、アプリケーションのインストール構成データなどが格納されます。
設定ツリー内のノードには、階層ファイル・システムのディレクトリと同じ方法で名前が付けられます。 設定ツリーの各ノードには、ノード名 (一意である必要はない)、一意の絶対パス名、および各上位ノード(そのノード自体を含む)を起点とした相対パス名が割り当てられます。
ルート・ノードのノード名は、空の文字列("")です。 ほかのノードの名前は、作成時に任意に指定できます。 ノード名には任意の文字を使用できますが、空の文字列は指定できず、スラッシュ文字('/')は使用できません。
ルート・ノードの絶対パス名は"/"
です。 ルート・ノードの子には、"/" +
<node name>の絶対パス名があります。 他のすべてのノードの絶対パス名は、<親の絶対パス名> + "/" +
<node name>です。 絶対パス名は、常にスラッシュ文字から始まります。
ノードnの相対パス名は、上位ノードaを起点とした場合、nの絶対パス名を作成するときにaの絶対パス名に追加される文字列になります。先頭にスラッシュ文字がある場合は削除します。 次の点に注意してください。
- 相対パス名はスラッシュ文字で始まらない。
- そのノード自体を起点とした相対パス名は空の文字列である。
- 親を起点とした各ノードの相対パス名は、そのノード名になる。ただし、ルート・ノードには親が存在しないため、ルート・ノードは除く。
- ルートを起点とした各ノードの相対パス名は、その絶対パス名から先頭のスラッシュ文字を削除したものになる。
次の点にも注意してください。
- パス名には連続する複数のスラッシュ文字を含めることはできない。
- ルートの絶対パス名を除き、パス名はスラッシュ文字で終わらない。
- 上記の2つのルールに準拠している文字列はすべて有効なパス名である。
設定データを変更するメソッドはすべて、非同期に実行できます。つまり、実行後はただちに復帰し、変更は実装に依存した遅延が経過してから永続バッキング・ストアに送られます。 flush
メソッドを使用すると、バッキング・ストアに対する更新を同期的に強制できます。 Java Virtual Machineを正常に終了しても、保留中の更新は失われません -- 保留中の更新が永続的になるようにするために、終了時に明示的なflush
呼び出しは必要ありません。
Preferences
オブジェクトからプリファレンスを読み取るすべてのメソッドでは、起動側がデフォルト値を指定する必要があります。 読み込む前に値が設定されていなかった場合またはバッキング・ストアが利用できない場合は、そのデフォルト値が返されます。 これは、バッキング・ストアが利用できなくなった場合でも、アプリケーションが動作できるようにするためです(ただし、機能がわずかに低下する)。 flush
などのいくつかのメソッドには、バッキング・ストアが使用できない場合に動作できないセマンティクスがあります。 通常のアプリケーションでは、これらのメソッドを呼び出す必要がありません。それらは、BackingStoreException
をスローするように宣言していることで識別できます。
このクラスのメソッドは、1つのJVMの複数のスレッドから並行して呼び出すことができます。このとき、外部的に同期化する必要はありません。実行結果は、逐次実行した場合と等価です。 このクラスが複数のJVMによって同時に使用され、設定データが同じバッキング・ストアに格納された場合、データ・ストアは破壊しませんが、設定データの一貫性は保証されません。
このクラスには、エクスポート/インポート機能があり、設定をXMLドキュメントに「エクスポート」したり、設定が記述されたXMLドキュメントをシステムに「インポート」することができます。 この機能は、設定ツリーのすべてまたは一部をバックアップし、そのバックアップを復元するときに使用します。
このXMLドキュメントでは、次のDOCTYPEが宣言されます。
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
設定をエクスポート/インポートするときに、システムURI (http://java.sun.com/dtd/preferences.dtd)にはアクセスしません。システムURIは、DTDを一意に識別する文字列として使用されます。その内容は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for a Preferences tree. -->
<!-- The preferences element is at the root of an XML document
representing a Preferences tree. -->
<!ELEMENT preferences (root)>
<!-- The preferences element contains an optional version attribute,
which specifies version of DTD. -->
<!ATTLIST preferences EXTERNAL_XML_VERSION CDATA "0.0" >
<!-- The root element has a map representing the root's preferences
(if any), and one node for each child of the root (if any). -->
<!ELEMENT root (map, node*) >
<!-- Additionally, the root contains a type attribute, which
specifies whether it's the system or user root. -->
<!ATTLIST root
type (system|user) #REQUIRED >
<!-- Each node has a map representing its preferences (if any),
and one node for each child (if any). -->
<!ELEMENT node (map, node*) >
<!-- Additionally, each node has a name attribute -->
<!ATTLIST node
name CDATA #REQUIRED >
<!-- A map represents the preferences stored at a node (if any). -->
<!ELEMENT map (entry*) >
<!-- An entry represents a single preference, which is simply
a key-value pair. -->
<!ELEMENT entry EMPTY >
<!ATTLIST entry
key CDATA #REQUIRED
value CDATA #REQUIRED >
すべてのPreferences
実装には、PreferencesFactory
実装が関連付けられている必要があります。 すべてのJava(TM) SE実装は、ルート・プリファレンス・ノードの生成に使用されるPreferencesFactory
実装を指定するいくつかの方法を提供する必要があります。 これによって、管理者はデフォルトのpreferences実装を代替実装に置き換えることができます。 - 実装上のノート:
PreferencesFactory
実装は、次のように配置されています:システム・プロパティ
java.util.prefs.PreferencesFactory
が定義されている場合は、PreferencesFactory
インタフェースを実装するクラスの完全修飾名とみなされます。 その後、クラスがロードされ、インスタンスが作成されます。system class loader
で表示されるjarファイルにPreferencesFactory
実装クラス・ファイルがインストールされており、そのjarファイルにリソース・ディレクトリMETA-INF/services
内のjava.util.prefs.PreferencesFactory
という名前のprovider-configurationファイルが含まれている場合は、そのファイルに指定された最初のクラス名が取得されます。 このようなjarファイルが2つ以上指定された場合は、最初に検出されたファイルが使用されます。 その後、クラスがロードされ、インスタンスが作成されます。最後に、前述のシステム・プロパティと拡張jarファイルのいずれも指定されていない場合、基礎となるプラットフォームのシステム全体のデフォルトの
PreferencesFactory
実装がロードされ、インスタンス化されます。
- 導入されたバージョン:
- 1.4
-
フィールドのサマリー
修飾子と型フィールド説明static final int
キーとして使用できる文字列の最大長(80文字)です。static final int
ノード名の最大長(80文字)です。static final int
値として使用できる文字列の最大長(8192文字)です。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明abstract String
この設定ノードの絶対パス名を返します。abstract void
指定されたリスナーがこのノードのノード変更イベントを受信するように登録します。abstract void
指定されたリスナーがこの設定ノードに対する設定変更イベントを受信するように登録します。abstract String[]
この設定ノードの子の名前(このノードを起点とした相対名)を返します。abstract void
clear()
この設定ノード内の設定(キーと値のペアの関連付け)をすべて削除します。abstract void
このノード(その下位ノードは含まない)に含まれているすべての設定を表すXMLドキュメントを、指定された出力ストリームに発行します。abstract void
このノードとそのすべての下位ノードに含まれるすべての設定を表すXMLドキュメントを発行します。abstract void
flush()
この設定ノードとその下位ノードの内容に対するすべての変更を、永続ストアに強制的に格納します。abstract String
この設定ノード内の指定されたキーに関連付けられている値を返します。abstract boolean
getBoolean
(String key, boolean def) この設定ノード内の指定されたキーに関連付けられている文字列が表すboolean値を返します。abstract byte[]
getByteArray
(String key, byte[] def) この設定ノード内の指定されたキーに関連付けられている文字列が表すbyte配列値を返します。abstract double
この設定ノード内の指定されたキーに関連付けられている文字列が表すdouble値を返します。abstract float
この設定ノード内の指定されたキーに関連付けられている文字列が表すfloat値を返します。abstract int
この設定ノード内の指定されたキーに関連付けられている文字列が表すint値を返します。abstract long
この設定ノード内の指定されたキーに関連付けられている文字列が表すlong値を返します。static void
XMLドキュメントによって表されるすべての設定を、指定された入力ストリームからインポートします。abstract boolean
このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合はtrue
を返し、システム・プリファレンス・ツリーにある場合はfalse
を返します。abstract String[]
keys()
この設定ノード内に関連付けられている値を持つキーをすべて返します。abstract String
name()
この設定ノードの名前(その親を起点とした相対名)を返します。abstract Preferences
このノードと同じツリーにある名前付き設定ノードを返します。このノードとその上位ノードが存在しない場合は、それらをすべて作成します。abstract boolean
nodeExists
(String pathName) 名前付き設定ノードがこのノードと同じツリーに存在する場合は、trueを返します。abstract Preferences
parent()
このプリファレンス・ノードの親を返します。これがルートの場合はnull
を返します。abstract void
この設定ノードで指定されたキーに、指定された値を関連付けます。abstract void
putBoolean
(String key, boolean value) この設定ノード内の指定されたキーに、指定されたboolean値を表す文字列を関連付けます。abstract void
putByteArray
(String key, byte[] value) この設定ノード内の指定されたキーに、指定されたbyte配列を表す文字列を関連付けます。abstract void
この設定ノード内の指定されたキーに、指定されたdouble値を表す文字列を関連付けます。abstract void
この設定ノード内の指定されたキーに、指定されたfloat値を表す文字列を関連付けます。abstract void
この設定ノード内の指定されたキーに、指定されたint値を表す文字列を関連付けます。abstract void
この設定ノード内の指定されたキーに、指定されたlong値を表す文字列を関連付けます。abstract void
この設定ノード内の指定されたキーに関連付けられている値がある場合は、それを削除します。abstract void
この設定ノードとその下位ノードをすべて削除し、削除したノードに含まれている設定をすべて無効にします。abstract void
指定されたNodeChangeListener
を削除して、変更イベントを受信しないようにします。abstract void
指定された設定変更リスナーを削除して、設定変更イベントの受信を停止します。abstract void
sync()
このプリファレンス・ノードとその子孫からの今後の読取りに、sync
起動の前に永続ストア(任意のVMから)にコミットされた変更が反映されるようにします。static Preferences
systemNodeForPackage
(Class<?> c) システム設定ツリーから設定ノードを返します。このシステム設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。static Preferences
システムのルート設定ノードを返します。abstract String
toString()
この設定ノードの文字列表現を、式によって計算されたかのように返します:(this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()
。static Preferences
userNodeForPackage
(Class<?> c) 呼出し側ユーザーの設定ツリーから設定ノードを返します。このユーザー設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。static Preferences
userRoot()
呼出し側ユーザーのルート設定ノードを返します。
-
フィールド詳細
-
MAX_KEY_LENGTH
public static final int MAX_KEY_LENGTHキーとして使用できる文字列の最大長(80文字)です。- 関連項目:
-
MAX_VALUE_LENGTH
public static final int MAX_VALUE_LENGTH値として使用できる文字列の最大長(8192文字)です。- 関連項目:
-
MAX_NAME_LENGTH
public static final int MAX_NAME_LENGTHノード名の最大長(80文字)です。- 関連項目:
-
-
コンストラクタの詳細
-
Preferences
protected Preferences()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
-
-
メソッドの詳細
-
userNodeForPackage
public static Preferences userNodeForPackage(Class<?> c) 呼出し側ユーザーの設定ツリーから設定ノードを返します。このユーザー設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。 規則は次のとおりです: ノードの絶対パス名は、スラッシュ('/'
)が前に付いた完全修飾パッケージ名で、各ピリオド('.'
)がスラッシュに置き換えられます。 たとえば、クラスcom.acme.widget.Foo
に関連付けられたノードの絶対パス名は/com/acme/widget
です。この規則は、関連付けられたプリファレンス・ノードが
<unnamed>
である名前のないパッケージには適用されません。 このノードは、長期間の使用には適していませんが、パッケージにまだ属していない開発初期段階のプログラムや使い捨てのプログラムで使用できます。 重要なデータはこのノードに格納しないでください。それを使用するすべてのプログラムによって共有されているためです。パッケージに関連するプリファレンスにアクセスすることを希望するクラス
Foo
は、次のようにプリファレンス・ノードを取得できます:static Preferences prefs = Preferences.userNodeForPackage(Foo.class);
このイディオムを使えば、文字列を使って設定ノードを記述する必要がなくなるため、実行時にエラーが発生する可能性が減ります。 (クラス名の綴りを間違った場合は通常、コンパイル時にエラーが発生する。)このメソッドを呼び出したときに、返されるノードとその上位ノードが存在しなかった場合は、それらのノードが作成されます。 返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)で
flush
メソッドがコールされるまで永続的になることは保証されません。- パラメータ:
c
- ユーザー設定ノードを必要とするパッケージのクラス。- 戻り値:
c
がメンバーであるパッケージに関連付けられているユーザー・プリファレンス・ノード。- 例外:
NullPointerException
-c
がnull
の場合。SecurityException
- セキュリティ・マネージャが存在し、RuntimePermission("preferences")
が拒否された場合。- 関連項目:
-
systemNodeForPackage
public static Preferences systemNodeForPackage(Class<?> c) システム設定ツリーから設定ノードを返します。このシステム設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。 規則は次のとおりです: ノードの絶対パス名は、スラッシュ('/'
)が前に付いた完全修飾パッケージ名で、各ピリオド('.'
)がスラッシュに置き換えられます。 たとえば、クラスcom.acme.widget.Foo
に関連付けられたノードの絶対パス名は/com/acme/widget
です。この規則は、関連付けられたプリファレンス・ノードが
<unnamed>
である名前のないパッケージには適用されません。 このノードは、長期間の使用には適していませんが、パッケージにまだ属していない開発初期段階のプログラムや使い捨てのプログラムで使用できます。 重要なデータはこのノードに格納しないでください。それを使用するすべてのプログラムによって共有されているためです。パッケージに関連するプリファレンスにアクセスすることを希望するクラス
Foo
は、次のようにプリファレンス・ノードを取得できます:static Preferences prefs = Preferences.systemNodeForPackage(Foo.class);
このイディオムを使えば、文字列を使って設定ノードを記述する必要がなくなるため、実行時にエラーが発生する可能性が減ります。 (クラス名の綴りを間違った場合は通常、コンパイル時にエラーが発生する。)このメソッドを呼び出したときに、返されるノードとその上位ノードが存在しなかった場合は、それらのノードが作成されます。 返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)で
flush
メソッドがコールされるまで永続的になることは保証されません。- パラメータ:
c
- システム設定ノードを必要とするパッケージのクラス。- 戻り値:
c
がメンバーであるパッケージに関連付けられたシステム・プリファレンス・ノード。- 例外:
NullPointerException
-c
がnull
の場合。SecurityException
- セキュリティ・マネージャが存在し、RuntimePermission("preferences")
が拒否された場合。- 関連項目:
-
userRoot
public static Preferences userRoot()呼出し側ユーザーのルート設定ノードを返します。- 戻り値:
- 呼出し側ユーザーのルート設定ノード。
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、RuntimePermission("preferences")
が拒否された場合。- 関連項目:
-
systemRoot
public static Preferences systemRoot()システムのルート設定ノードを返します。- 戻り値:
- システムのルート設定ノード。
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、RuntimePermission("preferences")
が拒否された場合。- 関連項目:
-
put
この設定ノードで指定されたキーに、指定された値を関連付けます。- パラメータ:
key
- 指定の値が関連付けられるキー。value
- 指定のキーに関連付けられる値。- 例外:
NullPointerException
- キーまたは値がnull
の場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超えた場合、またはvalue.length
がMAX_VALUE_LENGTH
を超えた場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- キーまたは値のいずれかにnull制御文字が含まれている場合、コード・ポイントU+0000。
-
get
この設定ノード内の指定されたキーに関連付けられている値を返します。 キーに関連付けられている値がない場合またはバッキング・ストアが利用できない場合は、指定されたデフォルトを返します。一部の実装は、デフォルト値をそのバッキング・ストアに格納します。 指定されたキーに関連付けられている値がない場合でも、格納済みデフォルトがある場合は、指定されたデフォルトに優先して格納済みデフォルトが返されます。
- パラメータ:
key
- 関連付けられている値が返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がない場合に返される値。- 戻り値:
key
に関連付けられた値、またはkey
に値が関連付けられていない場合はdef
、またはバッキング・ストアにアクセスできません。- 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。 (def
にはnull
値を使用できます。)IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。
-
remove
public abstract void remove(String key) この設定ノード内の指定されたキーに関連付けられている値がある場合は、それを削除します。この実装で「格納デフォルト」がサポートされていて、指定された設定にそのようなデフォルトが存在する場合、格納されているデフォルトはこの呼び出しによって"公開"になります。これは、
get
の次の呼び出しによって返されるという意味です。- パラメータ:
key
- マッピングが設定ノードから削除されるキー。- 例外:
NullPointerException
-key
がnull
である場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。
-
clear
public abstract void clear() throws BackingStoreExceptionこの設定ノード内の設定(キーと値のペアの関連付け)をすべて削除します。 この呼出しは、このノードの下位ノードには適用されません。この実装で「格納デフォルト」がサポートされ、プリファレンス階層のこのノードにそのようなデフォルトが含まれている場合、格納されているデフォルトはこの呼び出しによって"公開"になります。これは、
get
への呼び出しの後続によって返されるという意味です。- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
putInt
public abstract void putInt(String key, int value) この設定ノード内の指定されたキーに、指定されたint値を表す文字列を関連付けます。 関連付けられる文字列は、int値がInteger.toString(int)
に渡された場合に返される文字列です。 このメソッドは、getInt(java.lang.String, int)
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getInt
public abstract int getInt(String key, int def) この設定ノード内の指定されたキーに関連付けられている文字列が表すint値を返します。 この文字列は、Integer.parseInt(String)
によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Integer.parseInt(String)
がNumberFormatException
をスローする場合、指定されたデフォルトを返します。 このメソッドは、putInt(java.lang.String, int)
と組み合わせて使用します。実装が「格納デフォルト」をサポートし、そのようなデフォルトが存在し、アクセス可能で、
Integer.parseInt
でintに変換できる場合、このintは指定されたデフォルトよりも優先して返されます。- パラメータ:
key
- 関連付けられている値がintとして返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値をintとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表されるint値、または関連する値が存在しないか、intとして解釈できない場合にはdef
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
putLong
public abstract void putLong(String key, long value) この設定ノード内の指定されたキーに、指定されたlong値を表す文字列を関連付けます。 関連付けられる文字列は、long値がLong.toString(long)
に渡された場合に返される文字列です。 このメソッドは、getLong(java.lang.String, long)
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getLong
public abstract long getLong(String key, long def) この設定ノード内の指定されたキーに関連付けられている文字列が表すlong値を返します。 この文字列は、Long.parseLong(String)
によってlongに変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Long.parseLong(String)
がNumberFormatException
をスローする場合、指定されたデフォルトを返します。 このメソッドは、putLong(java.lang.String, long)
と組み合わせて使用します。実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、
Long.parseLong
でlongに変換できる場合、このlongは指定されたデフォルトよりも優先して返されます。- パラメータ:
key
- 関連付けられている値がlongとして返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値をlongとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表されるlong値、または関連付けられた値が存在しないか、longとして解釈できない場合はdef
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
putBoolean
public abstract void putBoolean(String key, boolean value) この設定ノード内の指定されたキーに、指定されたboolean値を表す文字列を関連付けます。 関連する文字列は、値がtrueの場合は"true"
、falseの場合は"false"
です。 このメソッドは、getBoolean(java.lang.String, boolean)
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getBoolean
public abstract boolean getBoolean(String key, boolean def) この設定ノード内の指定されたキーに関連付けられている文字列が表すboolean値を返します。 有効な文字列は、trueを表す"true"
およびfalseを表す"false"
です。 大文字と小文字は区別されないため、たとえば、"TRUE"
や"False"
も有効です。 このメソッドは、putBoolean(java.lang.String, boolean)
と組み合わせて使用します。キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連する値が
"true"
または"false"
以外の場合、大/小文字を無視して、指定されたデフォルトを返します。実装が「格納デフォルト」をサポートし、そのようなデフォルトが存在し、アクセス可能な場合、格納されているデフォルトが
"true"
または"false"
以外のものである場合を除き、指定されたデフォルトよりも優先して使用されます。この場合、指定されたデフォルトが使用されます。- パラメータ:
key
- 関連付けられている値がbooleanとして返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値をブールとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表されるブール値、または関連付けられた値が存在しないか、ブールとして解釈できない場合はdef
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
putFloat
public abstract void putFloat(String key, float value) この設定ノード内の指定されたキーに、指定されたfloat値を表す文字列を関連付けます。 関連付けられる文字列は、float値がFloat.toString(float)
に渡された場合に返される文字列です。 このメソッドは、getFloat(java.lang.String, float)
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getFloat
public abstract float getFloat(String key, float def) この設定ノード内の指定されたキーに関連付けられている文字列が表すfloat値を返します。 この文字列は、Float.parseFloat(String)
によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Float.parseFloat(String)
がNumberFormatException
をスローする場合、指定されたデフォルトを返します。 このメソッドは、putFloat(java.lang.String, float)
と組み合わせて使用します。実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、
Float.parseFloat
で浮動小数に変換できる場合、この浮動小数点は指定されたデフォルトよりも優先して返されます。- パラメータ:
key
- 関連付けられている値がfloatとして返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値を浮動小数点として解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表される浮動小数点値。関連付けられた値が存在しないか、または浮動小数点として解釈できない場合は、def
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
putDouble
public abstract void putDouble(String key, double value) この設定ノード内の指定されたキーに、指定されたdouble値を表す文字列を関連付けます。 関連付けられる文字列は、double値がDouble.toString(double)
に渡された場合に返される文字列です。 このメソッドは、getDouble(java.lang.String, double)
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key.length()
がMAX_KEY_LENGTH
を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getDouble
public abstract double getDouble(String key, double def) この設定ノード内の指定されたキーに関連付けられている文字列が表すdouble値を返します。 この文字列は、Double.parseDouble(String)
によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Double.parseDouble(String)
がNumberFormatException
をスローする場合、指定されたデフォルトを返します。 このメソッドは、putDouble(java.lang.String, double)
と組み合わせて使用します。実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、
Double.parseDouble
でdoubleに変換できる場合、このdoubleは指定されたデフォルトよりも優先して返されます。- パラメータ:
key
- 関連付けられている値がdoubleとして返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値をdoubleとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表されるdouble値、または関連付けられた値が存在しないか、doubleとして解釈できない場合はdef
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
putByteArray
public abstract void putByteArray(String key, byte[] value) この設定ノード内の指定されたキーに、指定されたbyte配列を表す文字列を関連付けます。 関連付ける文字列は、Base64でエンコードされたバイト配列です。これについては、RFC 2045のセクション6.8に定義されていますが、小さな変更があり、この文字列はBase64 Alphabetの文字だけで構成され、改行文字が含まれません。 Base64でエンコードされた文字列の長さがMAX_VALUE_LENGTH
を超えないように、バイト配列の最大長はMAX_VALUE_LENGTH
の4分の3に制限されます。 このメソッドは、getByteArray(java.lang.String, byte[])
と組み合わせて使用します。- パラメータ:
key
- 文字列形式の値が関連付けられるキー。value
- キーに関連付けられる文字列形式の値。- 例外:
NullPointerException
- キーまたは値がnull
の場合。IllegalArgumentException
- key.length()がMAX_KEY_LENGTHを超える場合、またはvalue.lengthがMAX_VALUE_LENGTH*3/4を超える場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
getByteArray
public abstract byte[] getByteArray(String key, byte[] def) この設定ノード内の指定されたキーに関連付けられている文字列が表すbyte配列値を返します。 有効な文字列は、Base64でエンコードされたバイナリデータです。これについては、RFC 2045のセクション6.8に定義されていますが、小さな変更があり、この文字列はBase64 Alphabetの文字だけで構成され、改行文字や不適切な文字は許可されません。 このメソッドは、putByteArray(java.lang.String, byte[])
と組み合わせて使用します。キーに関連付けられる値がない場合、バッキング・ストアが利用できない場合、または関連付けられている値がBase64でエンコードされた有効なbyte配列(上の定義を参照)でない場合は、指定されたデフォルトを返します。
この実装が格納済みデフォルトをサポートし、格納済みデフォルトが存在してアクセス可能であり、格納済みデフォルトがBase64でエンコードされた有効なbyte配列(上記の定義どおり)である場合は、指定されたデフォルトに優先して使用されます。そうでない場合は、指定されたデフォルトが使用されます。
- パラメータ:
key
- 関連付けられている値がbyte配列として返されるキー。def
- このプリファレンス・ノードにkey
に関連付けられた値がないか、関連付けられた値をバイト配列として解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。- 戻り値:
- このプリファレンス・ノードの
key
に関連付けられた文字列で表されるバイト配列値、または関連付けられている値が存在しないかバイト配列として解釈できない場合はdef
。 - 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。NullPointerException
-key
がnull
である場合。 (def
にはnull
値を使用できます。)IllegalArgumentException
- keyにnull制御文字が含まれている場合、コード・ポイントU+0000。- 関連項目:
-
keys
public abstract String[] keys() throws BackingStoreExceptionこの設定ノード内に関連付けられている値を持つキーをすべて返します。 このノードに設定がない場合、返される配列のサイズはゼロになります。この実装が格納済みデフォルトをサポートし、このノードに格納済みデフォルトがあり、明示的な設定によってオーバーライドされていない場合は、明示的な設定と格納済みデフォルトが配列に返されます。
- 戻り値:
- この設定ノード内に関連付けられている値を持つキーの配列。
- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。
-
childrenNames
public abstract String[] childrenNames() throws BackingStoreExceptionこの設定ノードの子の名前(このノードを起点とした相対名)を返します。 このノードに子がない場合、返される配列のサイズはゼロになります。- 戻り値:
- この設定ノードの子の名前。
- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。
-
parent
public abstract Preferences parent()このプリファレンス・ノードの親を返します。これがルートの場合はnull
を返します。- 戻り値:
- この設定ノードの親。
- 例外:
IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。
-
node
public abstract Preferences node(String pathName) このノードと同じツリーにある名前付き設定ノードを返します。このノードとその上位ノードが存在しない場合は、それらをすべて作成します。 相対パス名または絶対パス名を受け入れます。 相対パス名(スラッシュ文字('/')
で始まらない)は、このプリファレンス・ノードに対して相対的に解釈されます。返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)で
flush
メソッドがコールされるまで永続的になることは保証されません。- パラメータ:
pathName
- 返される設定ノードのパス名。- 戻り値:
- 指定された設定ノード。
- 例外:
IllegalArgumentException
- パス名が無効である場合(つまり、パス名に連続した複数のスラッシュ文字が含まれているか、パス名がスラッシュ文字で終わっていてその長さが2文字以上の場合)。NullPointerException
- パス名がnull
の場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
nodeExists
public abstract boolean nodeExists(String pathName) throws BackingStoreException 名前付き設定ノードがこのノードと同じツリーに存在する場合は、trueを返します。 相対パス名(スラッシュ文字('/')
で始まらない)は、このプリファレンス・ノードに対して相対的に解釈されます。このノード(または祖先)が
removeNode()
メソッドですでに削除されている場合は、このメソッドを起動することは有効ですが、パス名""
のみを使用して起動すると、false
が返されます。 したがって、p
が削除されたかどうかをテストするために、idiomp.nodeExists("")
を使用できます。- パラメータ:
pathName
- 存在が確認されるノードのパス名。- 戻り値:
- 指定されたノードが存在する場合にtrue。
- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalArgumentException
- パス名が無効である場合(つまり、パス名に連続した複数のスラッシュ文字が含まれているか、パス名がスラッシュ文字で終わっていてその長さが2文字以上の場合)。NullPointerException
- パス名がnull
の場合。IllegalStateException
- このノード(または祖先)がremoveNode()
メソッドで削除され、pathName
が空の文字列(""
)でない場合。
-
removeNode
public abstract void removeNode() throws BackingStoreExceptionこの設定ノードとその下位ノードをすべて削除し、削除したノードに含まれている設定をすべて無効にします。 ノードが削除されると、対応するPreferences
インスタンスでname()
、absolutePath()
、isUserNode()
、flush()
またはnodeExists("")
以外のメソッドを試行すると、IllegalStateException
で失敗します。 (Object
で定義されたメソッドは、削除された後もノード上で起動できます。IllegalStateException
はスローされません。)このノード(または祖先)で
flush
メソッドがコールされるまで、削除の永続性は保証されません。この実装が格納済みデフォルトをサポートしている場合は、ノードを削除すると、このノードまたはその下位ノードに格納済みデフォルトが使用されます。 したがって、このノードのパス名で
nodeExists
の後続の呼出しはtrue
を返し、このパス名でnode
の後続の呼出しは、プリファレンスまたは子(あるいはその両方)の空でないコレクションを表す(異なる)Preferences
インスタンスを返す場合があります。- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによってすでに削除されている場合。UnsupportedOperationException
- このメソッドがルート・ノード上で呼び出された場合。- 関連項目:
-
name
public abstract String name()この設定ノードの名前(その親を起点とした相対名)を返します。- 戻り値:
- この設定ノードの名前(その親を起点とした相対名)。
-
absolutePath
public abstract String absolutePath()この設定ノードの絶対パス名を返します。- 戻り値:
- この設定ノードの絶対パス名。
-
isUserNode
public abstract boolean isUserNode()このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合はtrue
を返し、システム・プリファレンス・ツリーにある場合はfalse
を返します。- 戻り値:
- このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合は
true
、システム・プリファレンス・ツリーにある場合はfalse
。
-
toString
public abstract String toString()この設定ノードの文字列表現を、式によって計算されたかのように返します:(this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()
。 -
flush
public abstract void flush() throws BackingStoreExceptionこの設定ノードとその下位ノードの内容に対するすべての変更を、永続ストアに強制的に格納します。 このメソッドが正常に復帰した場合は、このメソッドが呼び出される前に、このノードをルートとするサブツリーにすべての変更が適用されています。この実装を使用すれば、任意のタイミングで永続ストアに変更をフラッシュできます。 このメソッドが呼び出されるまで待機する必要はありません。
新しく作成されたノードでフラッシュが発生すると、そのノードが永続的になり、まだ永続的になっていない上位ノード(および下位ノード)も永続的になります。 ただし、上位ノードに対する設定値の変更は、永続的になりません。
このメソッドを、
removeNode()
メソッドを使用して削除されたノード上で呼び出すと、flushSpi()がこのノード上で呼び出されますが、ほかのノードでは呼び出されません。- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。- 関連項目:
-
sync
public abstract void sync() throws BackingStoreExceptionこのプリファレンス・ノードとその子孫からの今後の読取りに、sync
起動の前に永続ストア(任意のVMから)にコミットされた変更が反映されるようにします。 副作用として、このプリファレンス・ノードおよびその子孫のコンテンツの変更は、このノードでflush
メソッドが呼び出されたかのように、永続ストアに強制されます。- 例外:
BackingStoreException
- バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
addPreferenceChangeListener
public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl) 指定されたリスナーがこの設定ノードに対する設定変更イベントを受信するように登録します。 設定変更イベントは、設定がこのノードに追加されたとき、設定がこのノードから削除されたとき、または設定に関連付けられている値が変更されたときに生成されます。 (設定変更イベントは、removeNode()
メソッドでは生成されません。このメソッドでは、ノード変更イベントが生成されます。 プリファレンス変更イベントは、clear
メソッドによって生成されます。)ノード変更イベントは、登録されたリスナーと同じJVM内で変更が行われたときにだけ、生成されます。ただし、一部の実装では、現在のJVMの外部で行われた変更に対して、イベントが生成されることがあります。 イベントが生成された時点で、変更が永続的になっていないことがあります。 現在のノードの下位ノードで設定が変更されたときは、イベントは生成されません。そのようなイベントが必要な場合は、そのノードを登録する必要があります。
- パラメータ:
pcl
- 追加する設定変更リスナー。- 例外:
NullPointerException
-pcl
がNULLの場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
removePreferenceChangeListener
public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl) 指定された設定変更リスナーを削除して、設定変更イベントの受信を停止します。- パラメータ:
pcl
- 削除する設定変更リスナー。- 例外:
IllegalArgumentException
-pcl
がこのノードに登録済のプリファレンス変更リスナーではなかった場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
addNodeChangeListener
public abstract void addNodeChangeListener(NodeChangeListener ncl) 指定されたリスナーがこのノードのノード変更イベントを受信するように登録します。 ノード変更イベントは、子ノードがこのノードに追加されたとき、またはこのノードから削除されたときに生成されます。 (1回のremoveNode()
呼出しによって、複数のノード変更イベントが、削除されたノードをルートとするサブツリー内の各ノードに1つずつ生成されます。)ノード変更イベントは、登録されたリスナーと同じJVM内で変更が行われたときにだけ、生成されます。ただし、一部の実装では、現在のJVMの外部で行われた変更に対して、イベントが生成されることがあります。 イベントが生成された時点で、変更が持続的になっていないことがあります。 現在のノードの配下にない下位ノードが追加または削除されたときは、イベントは生成されません。そのようなイベントが必要な場合は、そのノードを登録する必要があります。
作成されたノードは、ただちに有効になりません。 これらのノードは、アクセスされたときに暗黙的に作成されます。このため、アクセスされる前に、子ノードがバッキング・ストアに存在するかどうかを実装が判断できない場合があります(たとえば、バッキング・ストアが到達不能な場合や、キャッシュされた情報が最新でない場合など)。 このような状況でのノード変更イベントの生成は、特に定義されていません。
- パラメータ:
ncl
- 追加するNodeChangeListener
。- 例外:
NullPointerException
-ncl
がNULLの場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
removeNodeChangeListener
public abstract void removeNodeChangeListener(NodeChangeListener ncl) 指定されたNodeChangeListener
を削除して、変更イベントを受信しないようにします。- パラメータ:
ncl
- 削除するNodeChangeListener
。- 例外:
IllegalArgumentException
-ncl
がこのノードに登録されたNodeChangeListener
ではなかった場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
exportNode
public abstract void exportNode(OutputStream os) throws IOException, BackingStoreException このノード(その下位ノードは含まない)に含まれているすべての設定を表すXMLドキュメントを、指定された出力ストリームに発行します。 このXMLドキュメントは、このノードのオフライン・バックアップにもなります。このXMLドキュメントでは、次のDOCTYPEが宣言されます。
UTF-8文字エンコーディングが使用されます。<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドの1回の呼出しでこのノードの設定が並行して変更された場合、エクスポートされた設定がこのノードに含まれる設定と一致していないことがあります。つまり、並行して行われた変更は、エクスポートされたデータに反映されていないことがあります。
- パラメータ:
os
- XMLドキュメントの発行先の出力ストリーム- 例外:
IOException
- 指定した出力ストリームに書き込むと、IOException
になります。BackingStoreException
- 設定データがバッキング・ストアから読み取れない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
exportSubtree
public abstract void exportSubtree(OutputStream os) throws IOException, BackingStoreException このノードとそのすべての下位ノードに含まれるすべての設定を表すXMLドキュメントを発行します。 このXMLドキュメントは、このノードをルートとするサブツリーのオフライン・バックアップにもなります。このXMLドキュメントでは、次のDOCTYPEが宣言されます。
UTF-8文字エンコーディングが使用されます。<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドの1回の呼出しでこのノードをルートとするサブツリーの設定またはノードが並行して変更された場合、エクスポートされた設定がサブツリーと一致していないことがあります。つまり、並行して行われた変更は、エクスポートされたデータに反映されていないことがあります。
- パラメータ:
os
- XMLドキュメントの発行先の出力ストリーム- 例外:
IOException
- 指定した出力ストリームに書き込むと、IOException
になります。BackingStoreException
- 設定データがバッキング・ストアから読み取れない場合。IllegalStateException
- このノード(または上位ノード)がremoveNode()
メソッドによって削除されている場合。- 関連項目:
-
importPreferences
public static void importPreferences(InputStream is) throws IOException, InvalidPreferencesFormatException XMLドキュメントによって表されるすべての設定を、指定された入力ストリームからインポートします。 このドキュメントは、ユーザー設定またはシステム設定を表しています。 ユーザー設定を表している場合は、呼び出したユーザーの設定ツリーに設定がインポートされます。別のユーザー設定ツリーのドキュメントをインポートしてもかまいません。 このドキュメントに記述されている設定の設定ノードが存在しない場合は、そのノードが作成されます。XMLドキュメントには、次のDOCTYPE宣言が必要です。
このメソッドは、<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
exportNode(OutputStream)
およびexportSubtree(OutputStream)
と組み合わせて使用するように設計されています。このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドを実行すると、このクラスのほかのpublicメソッド(
node(String)
、put(String, String)
など)をオーバーライドして実装した場合と同じ結果が生成されます。- パラメータ:
is
- XMLドキュメントの読込み元の入力ストリーム。- 例外:
IOException
- 指定した入力ストリームから読み取ると、IOException
になります。InvalidPreferencesFormatException
- 入力ストリーム上のデータが、要求されたドキュメント型を持つ有効なXMLドキュメントにならない場合。SecurityException
- セキュリティ・マネージャが存在し、RuntimePermission("preferences")
が拒否された場合。- 関連項目:
-