2

我正在尝试使用“-g:vars”选项生成类文件。这对类来说很好,我得到了源中的参数名称。但这似乎不适用于接口。

例如接口公共接口测试

{
    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

我猜这是因为局部变量表不适用于接口。我如何获得调试信息,因为它也适用于接口?

4

1 回答 1

-1

那么,你要从哪里看到界面中的参数名称呢?每个实现类都将提供自己的名称——存储接口的名称有什么意义?

于 2011-10-19T22:57:40.923 回答