Есть ли способ сделать что-то подобное?
public class T {
String var = "Some value";
public void show() {
System.out.println(var.getClass().getName()); // Prints var
}
}
Редактировать
Вариант использования: у меня есть класс X
со многими переменными экземпляра, которые будут переданы в качестве аргументов другой точке входа класса Y
. Класс X
имеет этот метод:
protected String[] getAttributesAsCommandLineArguments() {
return new String[] {
String.format("--%s=%s", "state", state),
String.format("--%s=%s", "accountId", accountId),
String.format("--%s=%s", "pageId", pageId),
String.format("--%s=%s", "retroactiveDays", retroactiveDays),
String.format("--%s=%s", "state", state),
String.format("--%s=%s", "task", task),
String.format("--%s=%s", "channel", channel),
};
}
Я не хочу повторять оба имени в кавычках для каждой строки String.format()
.
Я хочу что-то вроде этого:
protected String[] getAttributesAsCommandLineArguments() {
return new String[] {
String.format("--%s=%s", state.getDeclaredName(), state),
String.format("--%s=%s", accountId.getDeclaredName(), accountId),
String.format("--%s=%s", pageId.getDeclaredName(), pageId),
String.format("--%s=%s", retroactiveDays.getDeclaredName(), retroactiveDays),
String.format("--%s=%s", state.getDeclaredName(), state),
String.format("--%s=%s", task.getDeclaredName(), task),
String.format("--%s=%s", channel.getDeclaredName(), channel),
};
}