Если у меня есть класс вроде этого:Java, конвертировать экземпляр класса для HashMap
class MyObject {
public int myInt;
public String myString;
}
Можно ли преобразовать экземпляр этого класса HashMap без осуществления преобразования кода?
MyObject obj = new MyObject();
obj.myInt = 1; obj.myString = "string";
HashMap<String, Object> hs = convert(obj);
hs.getInt("myInt"); // returns 1
hs.getString("myString"); // returns "string"
ли Java предоставляют такого рода решения, или мне нужно реализовать convert
по себе?
Мой класс имеет более 50 полей и конвертер для каждого поля - это не очень хорошая идея.
HashMaps имеют ключи и значения (2 вещи), а не 50 полей. Можете ли вы пояснить, чего вы пытаетесь достичь здесь? –
, вы также должны предоставить пользовательскую реализацию 'Map', потому что допустимый метод получения значения для ключа из' Map' является методом 'get (Object)'. Нет ничего похожего на 'getInt' или' getString', чтобы возвращать разные типы из Map. В конце концов, это не имело бы смысла иметь их, потому что тип возврата определяется вторым родовым типом. – SomeJavaGuy
@TimBiegeleisen Я хочу преобразовать все поля моего объекта в ключи и значения hashmap. –