
いつもお世話になっております。
java1.6
eclipse3.3
にてabstractクラスのメソッドを呼び出している手前でブレークポイントを設定し、ステップインしてデバックしていくと、
abstractクラスの方のソースがデバックされます。
abstractクラスを継承している実際に流れているソースをデバックする事はできますでしょうか。
今はソースを追う時、abstractメソッドがきた場合、
そのメソッド名でプロジェクト全体を検索して、どのソースが実行されているのかチェックしていますが、たくさんのソースから継承されている場合、現在流れている処理が、どのソースのロジックかを特定するのが大変です。
簡単に特定する事はできますでしょうか。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
下記のようなテストコードで試してみましたが、foo・barどちらのメソッドも、デバッガでstep intoで実行するとAbsClsではなくClsのほうのソースコードが表示されました。
Eclipse 3.5です。abstract class AbsCls {
public void foo() {
System.out.println("AbsCls.foo()");
}
abstract public void bar();
}
class Cls extends AbsCls {
public void foo() {
System.out.println("Cls.foo()");
}
public void bar() {
System.out.println("Cls.bar()");
}
}
AbsCls x = new Cls();
x.foo();
x.bar();
あと細かいですが、 ×デバック ○デバッグ です。
この回答への補足
ご回答ありがとうございます。
提示いただいたソースをeclipse3.3で実行してみたところ、
ご指摘のようにClsのほうのソースコードが表示されました。
ソースの書き方のせいなのか。
上手くいく場合と、いかない場合のソースを比べてみて試してみます。
ありがとうございました。
試してみてまた報告します。
No.1
- 回答日時:
>今はソースを追う時、abstractメソッドがきた場合、
意味が分からないです。abstaractメソッドは処理内容がないメソッドですのでデバッグできないです。
質問したいことはabstractメソッドをオーバーライドしたメソッドのうち、どのクラスのメソッドが実行されているかを知りたいということでしょうか?
上記であると仮定して標準出力(System.out.println();)を使う or log4jでログ出力するのが一番簡単だと思います。
文章を読んだ印象としては質問者さんは継承に対する理解が不足しているように思われますので、
一度、継承やメソッドのオーバーライドに関する知識を整理した方が良いと考えます。
この回答への補足
ご回答ありがとうございます。
たくさんオーバーライドしている場合、
すべてログを仕込むのでしょうか。
自分がつくった所なら構わないですが、他の人が作った所を
動かして解析する場合、できればソースに手を加えたくないです。
確かに自分の文章が良くないですが、
自分の質問しようとしている事が分かっていて、
あえて違う回答をしているように思えて残念です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
onClickで関数呼出し後に、結果...
-
JSPで<SELECT>の中にDBから持っ...
-
execute()
-
[VBA]GetSaveAsFilenameメソッ...
-
worksheets & rows メソッドは...
-
【sendkeysメソッドが動かずに...
-
DAOのExcelVBAにてAccessのデー...
-
javascriptからjavaを呼び出したい
-
AccessレポートのラベルをVBAで...
-
エラーの意味を
-
PDFファイルから別ウィンドウで...
-
C#でtrimができません
-
Excel VBA シェイプの原型のサ...
-
Range クラスのAutoFitプロパテ...
-
printStackTrace()メソッドに関...
-
boolean型のフィールドとゲッタ...
-
You Tubeの音楽をMac Book Proへ
-
mainメソッドのthrows節で設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
Application.Wait の参照設定
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報