合計 昨日 今日

[java]呼び出したつもりがないメソッドが実行されている

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: java大好き
[URL]
Date: 2017年3月12日(日) 22:24
No: 1
(OFFLINE)

 [java]呼び出したつもりがないメソッドが実行されている

javaで呼び出してないのに実行されているメソッドがあります。何か原因は分かりますか?
何故呼び出されてるか分かるかというとSystem.out.println("test");でこれが実行されているからです…
何故でしょう?Eclipseでメソッドを検索しても、そのクラスの中のメソッド以外、他から呼び出した形跡がありません…

Name: Math
[URL]
Date: 2017年3月12日(日) 22:39
No: 2
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

一寸情報不足でしょうね。もっと詳しく状況を説明してください。(コードも提示して頂くと分かりやすいでしよう。)

Name: java大好き
[URL]
Date: 2017年3月12日(日) 22:45
No: 3
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

コードはちょっと書けないのですが、EclipseでSystem.out.printlnで出力されるのって必ずしも実行順ではないのですか?

Name: java大好き
[URL]
Date: 2017年3月12日(日) 22:49
No: 4
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

かけないのが本当に残念で悔しいのですが、何かEclipseの仕様とかあるんですか?
実行されていても出力はしないとか、一気にまとめて出力するとかそんな仕様があれば教えてください…
printlnは強力な手段だとは思いますが…

Name: java大好き
[URL]
Date: 2017年3月12日(日) 22:55
No: 5
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

すいません
overrideのほうにかいてましたが失礼いたしました。
こちらですね。

その関数がどのオブジェクトから呼び出されたかとか、確認する方法はありますか?mainから呼び出しているんですが、もしかしたらjavaではそのクラスにアクセスしたら呼び出さなくても勝手に実行されるメソッドみたいな仕様があるかもしれません…

Name: Math
[URL]
Date: 2017年3月12日(日) 23:28
No: 6
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

”イベントドリブン”なプログラムなので(おそらく何百、何千というイベントが絡み合う)出力する順番はよくテストしないと”条件”によってかわります。フォームを出すだけで幾つものイベントが発生します。

Name: hide
[URL]
Date: 2017年3月12日(日) 23:40
No: 7
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

Eclipseならブレークポイントを張ってコールスタックを確認するのが一番手っ取り早そうです。

Name: Math
[URL]
Date: 2017年3月12日(日) 23:42
No: 8
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

デバッガーで調べたりログを出して調べますよ。

Name: かずま
[URL]
Date: 2017年3月13日(月) 03:14
No: 9
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

次のプログラムに runメソッドを呼び出すところはありませんが、
実行すると run は呼び出されています。そういうことでしょうか?
Eclipse ではなく Java の仕様です。
コード[Java]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
class SubThread extends Thread {
    public void run() {
        System.out.println("run invoked");
    }
}
 
class Test {
    public static void main(String args[]) {
        SubThread sub = new SubThread();
        sub.start();
    }
}

Name: java大好き
[URL]
Date: 2017年3月13日(月) 19:55
No: 10
(OFFLINE)

 Re: [java]呼び出したつもりがないメソッドが実行されている

すいません原因が分かりました。

setContents(Transferable contents, ClipboardOwner owner)
これが原因でした。

setContentsはTransfearableを実装したクラスのメソッドを実行してるってことでいいですよね?
このクラスは実際にオーバーライドして自分が作っています。
setContentsの中身が見えないのでTransfearable実装クラスのメソッドがどこで実行されてるのか分からない状態でした…

自分の認識はあってるでしょうか?出来ればsetContentsの中を見たいのですが…

Name: Math
[URL]
Date: 2017年3月14日(火) 08:00
No: 11
(OFFLINE)


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: 一般人 & ゲスト[14人]