Ответ 1
Аргумент или локальная переменная не имеют имени, а всего числа.
Я считаю, что аргумент командной строки для добавления локальных имен переменных - -parameters
чтобы разрешить доступ через отражение https://www.beyondjava.net/reading-java-8-method-parameter-named-reflection
Это задание декомпилятора для определения/угадывания имени переменной. Я использую Fernflower, который выполняет разумную работу.
вход
import java.util.stream.Stream;
interface IFoo {
public abstract void hello(String what);
public static void print(String... args) {
Stream<String> stream = Stream.of(args);
stream.forEach(System.out::println);
}
}
вывода с использованием Fernflower
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
import java.io.PrintStream;
import java.util.function.Consumer;
import java.util.stream.Stream;
interface IFoo {
void hello(String what);
static void print(String... args) {
Stream<String> stream = Stream.of(args);
PrintStream var10001 = System.out;
System.out.getClass();
stream.forEach(var10001::println);
}
}
ПРИМЕЧАНИЕ. System.out.getClass();
генерируется компилятором javac
для проверки null
значения.