Отладочная информация Java не сгенерирована для Интерфейсов - PullRequest
2 голосов
/ 20 октября 2011

Я пытаюсь сгенерировать файлы классов с опцией "-g: vars".Это нормально работает для классов, и я получаю имя параметра, как оно есть в источнике.Но это, похоже, не работает для интерфейсов.

например, интерфейс открытого интерфейса Test

{
    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);
}

while ...

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

Полагаю, это связано с тем, что таблица локальных переменных не применима к интерфейсам.Как получить информацию об отладке, как и для интерфейсов?

1 Ответ

0 голосов
/ 20 октября 2011

Хорошо, а где вы увидите имена параметров из интерфейса?Каждый реализующий класс будет предоставлять свои собственные имена - какой смысл хранить имена интерфейсов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...