2016-10-09 16 views
-3

Main.javaという名前のプログラムがあります。このプログラムのコンパイル後、Main.classとMain $ 1.classの2つの.classファイルがあります。私の問題は2つの.classファイルが全く同じです。新しいスレッドのクラスファイルとmainのクラスファイルは同じです

何が間違っているのですか?

新しいスレッドのrun()メソッドでいくつかのコードを計測することはできますが、新しいスレッドのrun()メソッドでコードの命令を見つけることができません。

public class Main{ 
    public static void main(String...args){ 
     Thread t=new Thread(){ 
     @Override 
      public void run(){ 
      System.out.println("xxxx"); 
      } 
     }; 
    t.start(); 
    } 
} 
+4

私のお金が正しく2つのクラスファイルを比較ないあなたになります。 –

+0

あなたが何を求めているのか分かりません。これら2つのクラスファイルが同じであるということは何を意味しますか?彼らは傾ける。 1つは外部public Mainクラス用です。もう1つは内部の匿名クラスのためのものです。 2つの全く異なるもの! – GhostCat

+0

あなたの質問にもっと詳しく教えてください。 – Blip

答えて

3

2つのクラスファイルを正しく比較しないでください。

md5sum Main.class Main$1.class 

(またはmd5sum以外のいくつかのチェックサム・ツール)

これは実際には文字列で1という変数を代入している:私はあなたのbashのようなプロンプトで次のように書いていることを賭けたいです - その変数が定義されていない場合、その変数は空ですので、それは同じファイルの内容として表示されます:

は、単一引用符を試してみてください2番目の文字列を:

md5sum Main.class 'Main$1.class' 
関連する問題