fix: Accept class parameter for destination instead of class name
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,3 +1,7 @@
|
||||
.gradle/**
|
||||
.idea/**
|
||||
build/**
|
||||
build/classes/**
|
||||
build/generated/**
|
||||
build/reports/**
|
||||
build/test-results/**
|
||||
build/tmp/**
|
||||
|
@@ -3,10 +3,10 @@ package np.com.krrish;
|
||||
import java.lang.reflect.*;
|
||||
|
||||
public class Mapper {
|
||||
public static Object map(Object source, String destination) {
|
||||
public static Object map(Object source, Class destination) {
|
||||
Object object = new Object();
|
||||
try {
|
||||
Class<?> aClass = Class.forName(destination);
|
||||
Class<?> aClass = Class.forName(destination.getName());
|
||||
object = aClass.getConstructor().newInstance();
|
||||
Field[] sourceFields = source.getClass().getDeclaredFields();
|
||||
for (Field sourceField : sourceFields) {
|
||||
|
@@ -9,7 +9,7 @@ class MapperTest {
|
||||
@Test
|
||||
void testEmptyFieldsMap() {
|
||||
Source source = new Source();
|
||||
Object destination = Mapper.map(source, "np.com.krrish.Destination");
|
||||
Object destination = Mapper.map(source, Destination.class);
|
||||
assertEquals(Destination.class, destination.getClass());
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ class MapperTest {
|
||||
source.setFirst("first");
|
||||
source.setSecond("second");
|
||||
|
||||
Destination destination = (Destination) Mapper.map(source, "np.com.krrish.Destination");
|
||||
Destination destination = (Destination) Mapper.map(source, Destination.class);
|
||||
assertEquals("first", destination.getFirst());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user