Преобразование объекта для отображения в Java

голоса
-3

как я могу преобразовать объект в Map<String, String> котором keyнаходится obj.parameter.nameи valueявляетсяobj.parameter.value

для exaple: Object obj = new myObject(Joe, Doe);преобразовать Mapс ключами: имя, фамилия и значение: Джо, Doe.

Задан 19/09/2018 в 12:59
источник пользователем
На других языках...                            


1 ответов

голоса
1

Это, как вы бы это сделать:

import java.util.Map;
import java.util.HashMap;
import java.util.Map.Entry;
import java.lang.reflect.Field;

public class Main {
    public int a = 3;
    public String b = "Hello";

    public static void main(String[] args) {
        Map<String, Object> map = parameters(new Main());
        for (Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }

    public static Map<String, Object> parameters(Object obj) {
        Map<String, Object> map = new HashMap<>();
        for (Field field : obj.getClass().getDeclaredFields()) {
            field.setAccessible(true);
            try { map.put(field.getName(), field.get(obj)); } catch (Exception e) { }
        }
        return map;
    }
}

В принципе, можно использовать отражение, чтобы получить все поля в классе. Затем доступ ко всем этим полям объекта. Имейте в виду, что это работает только для полей, доступных из метода, который получает поля.

Ответил 19/09/2018 d 13:24
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more