2011-10-19 6 views
2

"-g:vars"オプションを使用してクラスファイルを生成しようとしています。これはクラスでうまくいき、ソースにあるようにパラメータ名を取得します。しかし、これはインタフェースでは機能していないようです。インタフェースのJavaデバッグ情報が生成されません

インタフェース パブリックインターフェイステスト

{ 
    public abstract void doesntWork(String name, String last, int id); 
} 

=======は

// (version 1.6 : 50.0, no super bit) 
public abstract interface Test { 

    // Method descriptor #4 (Ljava/lang/String;Ljava/lang/String;I)V 
    public abstract void doesntWork(java.lang.String arg0, java.lang.String arg1, int arg2); 
} 

中...

public class Test 
{ 
    public void doesntWork(String name, String last, int id) {} 
} 

== ==========生成します=========生成する(該当する部分のみを示す)============

public void doesntWork(java.lang.String name, java.lang.String last, int id); 
    0 return 
     Local variable table: 
     [pc: 0, pc: 1] local: this index: 0 type: Test 
     [pc: 0, pc: 1] local: name index: 1 type: java.lang.String 
     [pc: 0, pc: 1] local: last index: 2 type: java.lang.String 
     [pc: 0, pc: 1] local: id index: 3 type: int 

これは、Local variable tableがInterfacesに適用できないという事実によると思います。 デバッグ情報をそのままインターフェイス用に取得するにはどうすればよいですか?

答えて

-1

ここで、インターフェイスからパラメータ名をどこに表示しますか?すべての実装クラスは独自の名前を提供します - インターフェースのものを格納するポイントは何ですか?

+0

downvoter-care to to explain? – alf

+0

合意されましたが、 "-g"デバッグの振る舞いは、インタフェースとクラスを問わず一貫しているべきではありません。もちろん、実装クラスでは名前を上書きすることができます。 投票には15のポイントが必要です。万が一ダウンドータを知ることはできますか? – sErVerdevIL

+0

デバッグにこれらの名前を使用する方法はありません。したがって、それらを格納する必要はありません。 – alf

関連する問題