- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:classファイル内の変数名について)
クラスファイル内の変数名と機械的な変数名の違いについて
このQ&Aのポイント
- クラスファイル内の変数名と機械的な変数名の違いについて調査しました。
- 2つのclassファイルを逆コンパイルしてみたところ、変数名の違いが見つかりました。
- コンパイル方法の違いによって、変数名が機械的になってしまうことがあるようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>コンパイル方法の違いで変数名が機械的になってしまうことがあるのでしょうか。 あります。 メソッドのローカル変数は変数名を保持しておく必要性がありませんから、 コンパイル時に-gオプションを指定しないとなくなります。
その他の回答 (1)
- _kappe_
- ベストアンサー率68% (1581/2304)
回答No.2
ローカル変数とフィールドの違いではないでしょうか。 下記のようなクラスがあった場合、intLocalはclassファイルの中に名前が残らず、intFieldはコンパイル後も名前が保存されると思います。 public class Test { private int intField; public void setInt(int intLocal) { intField = intLocal; } }
質問者
お礼
ありがとうございます。 確かに-g オプションで内容が変わりました。 今回はclass 同士で比較をしたかったので、これだと比較はできなさそうですね。 残念です。
お礼
ありがとうございます。 確かに-g オプションで内容が変わりました。 今回はclass 同士で比較をしたかったので、これだと比較はできなさそうですね。 残念です。