AbstractPreferences.Node(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
nodeの仕様に従って、Preferences#node(String) メソッドを実装します。
[Android.Runtime.Register("node", "(Ljava/lang/String;)Ljava/util/prefs/Preferences;", "GetNode_Ljava_lang_String_Handler")]
public override Java.Util.Prefs.Preferences? Node(string? path);
[<Android.Runtime.Register("node", "(Ljava/lang/String;)Ljava/util/prefs/Preferences;", "GetNode_Ljava_lang_String_Handler")>]
override this.Node : string -> Java.Util.Prefs.Preferences
パラメーター
- path
- String
返す基本設定ノードのパス名。
返品
指定した基本設定ノード。
- 属性
注釈
nodeの仕様に従って、Preferences#node(String) メソッドを実装します。
この実装は、この基本設定ノードのロックを取得し、ノードが削除されていないことを確認します。
pathが""の場合、このノードが返されます。pathが"/"場合、このノードのルートが返されます。
pathの最初の文字が'/'されていない場合、実装はpathをトークンに分割し、このノードから名前付きノードへのパスを再帰的に走査し、トラバーサルの各ステップで名前とスラッシュをpathから "使用" します。 各ステップで、現在のノードがロックされ、ノードの子キャッシュで名前付きノードがチェックされます。 見つからない場合は、名前がチェックされ、長さが MAX_NAME_LENGTHを超えないようにします。 その後、 #childSpi(String) メソッドが呼び出され、結果がこのノードの子キャッシュに格納されます。 新しく作成された Preferences オブジェクトの #newNode フィールドが true され、ノード変更リスナーがある場合、イベント ディスパッチ スレッドによる処理のために通知イベントがエンキューされます。
これ以上トークンがない場合、子キャッシュで見つかったか、 childSpi によって返された最後の値がこのメソッドによって返されます。 トラバーサル中に 2 つの "/" トークンが連続して発生した場合、または最終的なトークンが (名前ではなく) "/" 場合は、適切な IllegalArgumentException がスローされます。
pathの最初の文字が'/' (絶対パス名を示す) 場合、この基本設定ノードのロックは、pathをトークンに分割する前に削除され、このメソッドはルートから (このノードから開始するのではなく) パスを再帰的に走査します。 それ以外の場合、トラバーサルは相対パス名に関して記述されたものと同じです。 ルート ノードでトラバーサルを開始する前に、このノードのロックを削除することは、 #lock locking invariantに従ってデッドロックが発生する可能性を回避するために不可欠です。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。