Если вы думаете, что я изобретаю велосипед, то я именно это и делаю. У нас нет Hibernate или любого другого решения ORM
Как мне это сделать, это важно:
- Без Джексона (у нас его нет).
- На Java 8.
- С опциональным использованием Apache (у нас есть Commons, Collections, Poi , я думаю, я мог бы добавить дополнительную библиотеку Apache, но я не уверен, лучше этого избегать)
Устарел
Идентичный класс теперь доступен в commons-beanutils (полная версия jar). Эта версия должна быть удалена из коллекций версии 4.0.
Я искал похожие вопросы, но не нашел
Я хочу отметить, что я знаю, как это сделать с помощью отражения, но я не хочу писать больше кода, чем мне нужно (и если я это сделаю, он будет относительно многословным). это так). Думаю, мне это, скорее всего, не понадобится
// make it pass
import org.junit.jupiter.api.Test;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class ToMapTest {
@Test
public void toMap_mapsObjectToValueMap() {
String testString = "test string";
int testInteger = 42;
MyClass myClass = new MyClass(testString, testInteger);
Map myClassAsMap = toMap(myClass);
assertNotNull(myClassAsMap);
assertEquals(2, myClassAsMap.size());
assertEquals(testString, myClassAsMap.get("string"));
assertEquals(testInteger, myClassAsMap.get("integer"));
}
private Map toMap(Object object) {
// replace with actual implementation
return null;
}
private static class MyClass {
public static final String SOME_CONSTANT = "const";
public final String string;
public int integer;
private MyClass(String string, int integer) {
this.string = string;
this.integer = integer;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-java-8
Мобильная версия