私はしばしば、Javaのメソッドへのすべての引数を(各オブジェクトの暗黙のtoString()を使って)印刷したいと思っています。これを達成するための迅速な方法はありますか?Javaでは、すべての引数をメソッドに簡単にダンプする方法はありますか?
答えて
Javaプログラミング言語には、これを行うための構造がありません。ただし、AspectJなどのAOP(Aspect Oriented Programming)パッケージのいずれかを使用して実行できます。
特に、このスレッドは、これを実現する方法についての良い出発点かもしれません:
http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html
私の個人的な意見は、しかし、ほとんどの時間は、AOPが怖い行き過ぎであるということです。
UPDATE:Oh、here's Springを使用できると仮定した場合、Spring AOPを使用する簡単な方法です。 一般に、Springは純粋なAspectJよりはるかに使いやすいです。
恐ろしい過度?少し説明できますか? –
さて、基本的には、言語とソースコードの外部の仕組みを使ってプログラムの動作を変更しています。私はそんなことには慎重だ。ソースコード(特にAOPを認識しないIDE)のデバッグと読み込みは、はるかに難しいプロセスです。 –
言語自体には一般的な方法が組み込まれていません。しかし、あなたのニーズを、スイートかもしれないいくつかのものがあります:あなたは、いくつかの層を横切って引数をダンプにのみ関心がある、とすべての呼び出しは、インターフェイスメソッドを介している場合
- はあなたのIDEは
println
- を生成するためのマクロを有していてもよく、 Javaプロキシを使用できます。
- あなたは、ポストコンパイルまたは
- をクラスローディング中にいずれかの、いくつかのバイトコード操作を使用することができ、誰かが#3のhardworkをやってみましょう、とデバッガを使用して物事を投棄停止AOP
自分を学びます。 – Matt
これはルビーだと思いますか? – tjarratt
@Mattは詳細な情報を記録するのに何も間違っていません –