2012-01-27 10 views
10

私はしばしば、Javaのメソッドへのすべての引数を(各オブジェクトの暗黙のtoString()を使って)印刷したいと思っています。これを達成するための迅速な方法はありますか?Javaでは、すべての引数をメソッドに簡単にダンプする方法はありますか?

+3

自分を学びます。 – Matt

+1

これはルビーだと思いますか? – tjarratt

+2

@Mattは詳細な情報を記録するのに何も間違っていません –

答えて

6

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よりはるかに使いやすいです。

+0

恐ろしい過度?少し説明できますか? –

+2

さて、基本的には、言語とソースコードの外部の仕組みを使ってプログラムの動作を変更しています。私はそんなことには慎重だ。ソースコード(特にAOPを認識しないIDE)のデバッグと読み込みは、はるかに難しいプロセスです。 –

3

言語自体には一般的な方法が組み込まれていません。しかし、あなたのニーズを、スイートかもしれないいくつかのものがあります:あなたは、いくつかの層を横切って引数をダンプにのみ関心がある、とすべての呼び出しは、インターフェイスメソッドを介している場合

  1. はあなたのIDEはprintln
  2. を生成するためのマクロを有していてもよく、 Javaプロキシを使用できます。
  3. あなたは、ポストコンパイルまたは
  4. をクラスローディング中にいずれかの、いくつかのバイトコード操作を使用することができ、誰かが#3のhardworkをやってみましょう、とデバッガを使用して物事を投棄停止AOP