decoratePreparedStatement私はカスタムを閉じるために(ちょっと例を挙げます)decorateです。Java 7 - カスタムメソッドデコレーション、デフォルト以外のすべてのメソッド、他の多くのメソッドを委任する
これは、close()
が呼び出されているときに、既存のインスタンスPreparedStatement
をデコレートし、他のコードを呼び出すことを意味します。そのために
、私はhereをやっようにだけ、内部オブジェクトへの呼び出しを委任するPreparedStatement
デコレータの方法の全て十を実装デフォルトする必要があります。欠けているのは、付加価値の少ない仕事とコードだけです。
もう1つの方法は、単一のメソッドですべてのメソッドのデリゲートを行うデフォルトの実装を提供するために、JavaのProxy and InvocationHandlerを試してみることです。カスタムメソッドが存在する場合、InvocationHandlerは呼び出しを呼び出します。例hereを参照してください。 この解決方法の問題点は、カスタムメソッドに@Override
というマークを付けることができず、プロキシがインスタンス化できないアブストラクトPreparedStatement
が必要なため、その署名の正当性をチェックできないことです。
これはできますか?どうやって?
* Java 7 maxを使用して実装できる必要がありますが、Java 8の回答を提供する必要があります。
:AOP風の「フック」に依存していますこのような何かを、考えてみましょう。 – PyThon
Mockitoを使用できますか? –
AOPを使用して機能を実現できます。しかし、1つの質問、なぜあなたは 'PreparedStatement'を装飾する必要がありますか? – Dimitri