
Eclipseのリファクタリング機能の仕組みとは?
Eclipseという開発環境を使用し始めて疑問に思ったのですが、メソッドやプロパティ名、クラス名などを置換するリファクタリング機能が存在します。
疑問なのは、Eclipseは置換の対象をどうやって認識しているのでしょうか?
プロパティとか変数とかクラス名って、スコープの範囲とか参照先かあるから、単に文字列で検索して置換しているだけではないのでは?と思っています。
ちょっと予想してみたのですが、パッケージやクラス名などを含めた、絶対位置のようなものをどこかに保持しているのでしょうか?中間コードみたいな場所とかに・・・?
考えると気になって仕方がありません。
出来れば、根拠とかソースを提示してもらえると助かります。
No.1ベストアンサー
- 回答日時:
Eclipse や IntellJ などでは、ソース編集時にメモリ内に構文木を作って、それを使って補完機能やリファクタリング機能を実現しているようです。
下記のページの「言語ワークベンチの要素」が分かりやすいかと。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Langua …
コンパイラがやっていることの一部を編集時にやっていると言っても良いでしょう。
まさかお返事をいただけるとは思いませんでした!
ありがとうございます。参考になりました。
まだ完全に理解できてないので、もっと勉強します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
EclipseでJSPのコンパイルエラー
-
dllと同じプロジェクトにする方法
-
同一パッケージにあるクラスが...
-
Struts2のアクセスURLについて
-
ATLとMFCの違いは何でしょうか?
-
IPアドレスの3バイト目の呼び方
-
標準モジュールとクラスモジュ...
-
そんなにお金がなくても年に1度...
-
同じクラスにならない確率を教...
-
クラスモジュールの使い方が詳...
-
複数のクラスで共通した関数を...
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
CListCtrlクラスに初期化する関...
-
eclipeでクラス作成ができない
-
配列クラスのクラス名
-
CString: 識別子が見つかりません
-
ActionとActionFormの記述
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
僕の出身中学校は200人同級生が...
-
今日は こどもの日 で、良い天...
-
どこからも呼ばれていない無意...
-
そんなにお金がなくても年に1度...
-
中学生です。 私は教室の黒板に...
-
恋愛
-
EclipseでJSPのコンパイルエラー
-
java eclipse 型に解決できません
-
共通で使う関数を集めたクラス...
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
-
配列の重複する値とその個数を...
-
「隣の芝生は青く見える」現象...
-
重複エラーを解決するには
-
UMLのクラス図はmain()も含むん...
-
複数のクラスで共通した関数を...
-
VBAもしくはVB6:クラスの中で...
-
命名規約は連番でいいのか?
-
eclipse でクラスに色
-
3年間同じクラスになる確率
おすすめ情報