2016-07-20 12 views
2

私はラッパークラスとそれがラップしているオブジェクトを持っています。私はwrapper.method()に電話し、それを明示的にラッパー用に定義することなくobject.method()と同じにしたいと思います。Javaラッパークラスのラップメンバーのメソッドを「拡張する」、またはショートカットを作成する方法はありますか?

これは可能ですか?

そうでなければ、オブジェクトのメソッドのすべてをコピーして貼り付けなければならないからです。なぜなら、Javaはすべてカプセル化に関するものであり、オブジェクトをパブリックにすると川が赤くなるからです。

+6

デリゲートメソッド呼び出しを明示的に記述しないようにしたいということですか?あなたのIDEにそれらを生成させてください。 [日食で](http://stackoverflow.com/questions/15397108/fast-implement-wrapping-delegate-methods-in-eclipse)。 –

+0

[アスペクト指向プログラミング(https://en.wikipedia.org/wiki/Aspect-oriented_programming)が役立つかもしれないタスクのように聞こえる。 – Jesper

+1

++ ide生成。 Netbeansでは、キーボードフォーカスがラッパークラス内にあり、そのメソッド内ではない場合はalt-insertを押すか、その場所で右クリックして「コードを挿入」を選択してから、「委任メソッド」を選択します。同時にデリゲートする複数のメソッド。 – megaflop

答えて

0

wrapper.getObject()。method()は何ですか?コピー貼り付けの問題を解決するはずです。

コメント後に編集: よろしく!それは包装の目的を汚すだろう。

+0

これは最初の場所でオブジェクトをラッピングすることを拒否します。 – Mena

0

これは純粋なJavaでは不可能ですが、これはLombokで実現できます。 @Delegateを参照してください。この機能は「実験的」とマークされているので、注意して使用することに注意してください。

関連する問題