Eclipseのリファクタリング機能の仕組みとは?
Eclipseという開発環境を使用し始めて疑問に思ったのですが、メソッドやプロパティ名、クラス名などを置換するリファクタリング機能が存在します。
疑問なのは、Eclipseは置換の対象をどうやって認識しているのでしょうか?
プロパティとか変数とかクラス名って、スコープの範囲とか参照先かあるから、単に文字列で検索して置換しているだけではないのでは?と思っています。
ちょっと予想してみたのですが、パッケージやクラス名などを含めた、絶対位置のようなものをどこかに保持しているのでしょうか?中間コードみたいな場所とかに・・・?
考えると気になって仕方がありません。
出来れば、根拠とかソースを提示してもらえると助かります。
No.1ベストアンサー
- 回答日時:
Eclipse や IntellJ などでは、ソース編集時にメモリ内に構文木を作って、それを使って補完機能やリファクタリング機能を実現しているようです。
下記のページの「言語ワークベンチの要素」が分かりやすいかと。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Langua …
コンパイラがやっていることの一部を編集時にやっていると言っても良いでしょう。
まさかお返事をいただけるとは思いませんでした!
ありがとうございます。参考になりました。
まだ完全に理解できてないので、もっと勉強します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- 英語 「名詞+形容詞/現在分詞/過去分詞+to不定詞の副詞的用法」の語順について 7 2022/09/22 05:27
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- 数学 高校数学の質問です 文字を消去したり、置き換えたりしたら、残った文字に範囲がつくかどうか調べるという 4 2023/05/03 18:18
- iPhone(アイフォーン) 10万円以上するスペックのスマホが必要になるのはどんな人?(ビデオカメラ機能除く) 6 2023/08/21 15:03
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- プリンタ・スキャナー ブラザー複合機のトナー交換およびトナー残量の検知の仕組みを教えて下さい。 1 2022/07/09 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
IPアドレスのクラスAを取得して...
-
tomcat上でのpropertiesファイ...
-
java eclipse 型に解決できません
-
「囲うインスタンス」のエラー...
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
-
packageとimport の違いって?
-
VB.NETでCreateProcess
-
A・B・Cクラスとは?
-
正規表現を使った小数入力チェ...
-
どこからも呼ばれていない無意...
-
3年間同じクラスになる確率
-
コンボボックスのマウスホイー...
-
UMLのクラス図はmain()も含むん...
-
1 つのヘッダファイルに複数の...
-
グローバルIPとプライベートIP...
-
JAVA3D実行時のエラー
-
string formatについて
-
IPアドレスの3バイト目の呼び方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どこからも呼ばれていない無意...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
共通で使う関数を集めたクラス...
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
-
IPアドレスのクラスAを取得して...
-
dllと同じプロジェクトにする方法
-
コンボボックスのマウスホイー...
-
UMLのクラス図はmain()も含むん...
-
自作のクラスファイルがインポ...
-
EclipseでJSPのコンパイルエラー
-
複数のクラスで共通した関数を...
-
同じクラスにならない確率を教...
-
同じパッケージ、クラス名が含...
-
1 つのヘッダファイルに複数の...
-
クラスのプロパティに構造体を...
-
重複エラーを解決するには
-
ATLとMFCの違いは何でしょうか?
-
Cstring(日本語含む)をcharに...
おすすめ情報