-
public interface WatchKey
watchable
オブジェクトがWatchService
に登録されていることを示すトークンです。監視鍵は、監視可能なオブジェクトが監視サービスに登録されると作成されます。 この鍵は、次が行われるまで
有効
なままです。監視鍵には状態があります。 最初の作成時、その鍵はreadyと呼ばれています。 イベントが検出されると、その鍵はsignalledとなり、監視サービスの
poll
またはtake
メソッドの呼出しによって取得できるようにキューに入れられます。 鍵は、いったんsignalledになると、そのreset
メソッドが呼び出されて鍵の状態がreadyに戻されるまで、その状態が続きます。 鍵がsignalled状態にあるときに検出されたイベントはキューに入れられますが、それによって鍵が監視サービスから取得できるように再度キューに入れられることはありません。 イベントを取得するには、鍵のpollEvents
メソッドを呼び出します。 このメソッドは、そのオブジェクトに関する蓄積されたすべてのイベントを取得して削除します。 最初の作成時、監視鍵には保留中のイベントはありません。 通常、その鍵がsignalled状態になり、次のコードが実行されると、イベントが取得されます。for (;;) { // retrieve key WatchKey key = watcher.take(); // process events for (WatchEvent<?> event: key.pollEvents()) { : } // reset the key boolean valid = key.reset(); if (!valid) { // object no longer registered } }
監視鍵は複数の並行スレッドで安全に使用できます。 監視サービスからsignalled状態の鍵を取得するスレッドがいくつか存在する場合は、そのオブジェクトに関するイベントの処理が完了したあとでのみ
reset
メソッドが呼び出されるように注意してください。 これにより、常に1つのスレッドが1つのオブジェクトに関するイベントを処理するようになります。- 導入されたバージョン:
- 1.7
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 void
cancel()
監視サービスへの登録を取り消します。boolean
isValid()
この監視鍵が有効であるかどうかを判断します。List<WatchEvent<?>>
pollEvents()
この監視鍵に関するすべての保留中のイベントを取得して削除し、取得したイベントのList
を返します。boolean
reset()
この監視鍵をリセットします。Watchable
watchable()
作成されたこの監視鍵のオブジェクトを返します。
-
-
-
メソッドの詳細
-
isValid
boolean isValid()
この監視鍵が有効であるかどうかを判断します。監視鍵は作成時に有効になり、それが取り消されるか、その監視サービスが閉じられるまで有効な状態が続きます。
- 戻り値:
- この監視鍵が有効である場合にかぎり
true
-
pollEvents
List<WatchEvent<?>> pollEvents()
この監視鍵に関するすべての保留中のイベントを取得して削除し、取得したイベントのList
を返します。このメソッドは保留中のイベントがない場合は待機しないので注意してください。
- 戻り値:
- 取得したイベントのリスト。空の場合もある
-
reset
boolean reset()
この監視鍵をリセットします。この監視鍵が取り消されている場合、またはこの監視鍵がすでにready状態にある場合は、このメソッドを呼び出しても何の効果もありません。 それ以外の場合、そのオブジェクトに関する保留中のイベントがあれば、この監視鍵はただちに監視サービスのキューに再度入れられます。 保留中のイベントがなければ、その監視鍵はready状態になり、イベントが検出されるか、その監視鍵が取り消されるまでその状態が続きます。
- 戻り値:
- 監視鍵が有効でリセットされた場合は
true
。監視鍵が有効
ではなくなっているためにリセットできなかった場合はfalse
-
cancel
void cancel()
監視サービスへの登録を取り消します。 復帰すると、監視鍵は無効になります。 監視鍵がキューに入っていて、監視サービスから取得されるのを待機している場合、それは削除されるまでキューの中に残ります。 保留中のイベントがあれば、それは保留状態のままとなり、その鍵が取り消されたあともpollEvents
メソッドを呼び出して取得できます。この監視鍵がすでに取り消されている場合は、このメソッドを呼び出しても何の効果もありません。 いったん取り消された監視鍵は以後永久に無効です。
-
watchable
Watchable watchable()
作成されたこの監視鍵のオブジェクトを返します。 このメソッドは、その鍵が取り消されたあともオブジェクトを返し続けます。WatchService
はネイティブ・ファイル・イベント通知機能(使用可能な場合)に直接マップするよう意図されているため、登録されたオブジェクトの監視方法に関する詳細の多くは実装によって大きく異なります。 たとえば、ディレクトリの変更を監視しているときに、そのディレクトリをファイル・システム内で移動または名前変更した場合、監視鍵が取り消されるという保証はないため、このメソッドで返されるオブジェクトがそのディレクトリへの有効なパスでなくなっている可能性があります。- 戻り値:
- 作成されたこの監視鍵のオブジェクト
-
-