端午节3連休中に調べたことのメモ。たぶんこれで@WillCloseと@WilCloseWhenClosedをサポートするdetectorが実装できるはず。 資源が確実に開放されるかを調べるDetectorを実装するときなど、ありうる処理の流れを列挙してその全てに対して正しい処理が行われるかを確認したいことがある。例えば Closeable resource = load(); try { use(resource); use2(resource); } finally { resource.close(); } というコードの場合、取りうる処理の流れは何通りかある。 load()が例外を投げる use()が例外を投げる use2()が例外を投げる use()が例外を投げ、close()も例外を投げる use2()が例外を投げ、close()も例外を投げる すべての処理が正しく流れる これら