2015-07-13 2 views
0

-параметров я хотел бы использовать Reflection API Java, чтобы получить параметры метода имен, используя java.lang.reflect.Parameter.getName().Eclipse, компилятор Эквивалент

я могу добиться этого для кода, который был составлен с использованием javac компилятор Sun, если указать -parameters флаг, как показано здесь:

$> javac 
Usage: javac <options> <source files> 
where possible options include: 
    ... 
    -parameters    Generate metadata for reflection on method parameters 
    ... 

Однако, я не могу найти любой вариант согласования в затмении, который добавит эти имена в скомпилированный байт-код.

Поэтому в Затмении имена параметров заменяются arg0, arg1 ...

Следующая иллюстрирует проблему, заявил выход из отладки/запуска в Eclipse:

public class Example { 
    public static void main(String[] theseAreMyCliArgs) { 
     // Ouptut [java.lang.String[] arg1] 
     // Should yield [java.lang.String[] theseAreMyCliArgs] 
     System.out.println(Arrays.toString(Example.class.getMethods()[0].getParameters())); 
    } 
} 

ответ

1

Я m не уверен в более ранних версиях, но Eclipse Luna (4.4) имеет эту опцию в Java->Compiler->Store information about method parameters. Он доступен только для версий файлов классов Java версии 1.8.

Вы можете установить его в настройках проекта, чтобы ограничить это дополнительные метаданные для выбранного проекта (ов).

+0

N.B. Это доступно только для javac 1.8 и выше. – jwa