2010-12-03 4 views
4

基本的に、私は手動で継承階層を調整する必要があります。私はクラスが完璧で、余分なフィールドはなく、DTOだけであることを望みます。しかし、紛失し重複したフィールドを追加するのは本当に簡単です。探しているものが既に存在するかどうかは分かりません。私が本当に気に入っているのは、継承されたフィールド(プライベートも含む)を含む、クラス内のすべてのフィールドをリストする方法です。 getterやsetterを一切使用しない、フラットなフィールドのみのビューのように。バリューオブジェクトのクレイジーな継承階層をリファクタリングする - すべてのフィールドとタイプのリストを取得するにはどうすればいいですか?

右クリック/ファイルメンバーでネットビーンで表示する方法を見つけましたが、コピーしてテキストファイルなどにコピー&ペーストすることはできません。

基本的にはちょうどこれらの列:

Name  Type   Superclass 
id  int 
theDate java.util.Date com.something.AbstractDTO 
... 

誰もがそれを行う方法を知っている、または私が何をしようとしている行うには良い方法はありますか?

答えて

1

既存のツールが見つからない場合は、リフレクションを使用してDTOクラスからこの情報を抽出するものを書くのは難しいはずです。アップデートのためにプログラムを再コンパイルして再実行する必要がありますが、それは何もないより優れています。

+0

私はjythonで何かをスクリプト化することを検討していました。それはそれがより簡単であるように思えるものの1つです。 – gtrak

1

Eclipseの「階層ビュー」を使用できます。あなたがクラスをクリックすると、そのメンバーが得られます。 [すべての継承されたメンバーを表示]アイコンをクリックすると、メンバータイプ(静的フィールド、静的メソッド、インスタンスフィールドなど)でソートされたビューが表示されます。通常の方法でインスタンスフィールドを選択し、右クリックし、「修飾名をコピーする」ことができます。メンバーが元々定義された場所を含む、このようなものが得られます。

nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.distanceMatrix 
nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.originalMatrix 
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalMatrix 
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalSeed1 
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalSeed2 
nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.previousIteration 
... 

この例では、「originalMatrix」が複数定義されています。 (階層ビューで見るのがさらに簡単です)

関連する問題