Как получить имя переменной?
Теоретическая задача: есть класс и каждый раз при создании его объектов, этот объект добавляется в статический ArrayList класса После чего в цикле foreach я перебираю каждый элемент списка объектов и вывожу по шаблону "Объект " + имя_переменной
Как можно взять имя переменной в данном случае?
Ответы (1 шт):
Автор решения: Anastasiya
→ Ссылка
Воспользуйтесь рефлексией и сохраняйте в список имена. Например:
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class TestClass {
private static List<String> names = new ArrayList<>();
private TestClass className = new TestClass();
private TestClass anotherName = new TestClass();
public static void main(String[] args) {
List<Field> fields = Arrays.stream(TestClass.class.getDeclaredFields())
.filter(f -> f.getType().getSimpleName().equals("TestClass"))
.collect(Collectors.toList());
fields.forEach(f -> names.add(f.getName()));
names.forEach(System.out::println);
}
}
Вывод:
className
anotherName