Some more reflection util content.
This commit is contained in:
parent
160d908a5b
commit
47086252b0
@ -1,6 +1,8 @@
|
|||||||
package com.massivecraft.massivecore.util;
|
package com.massivecraft.massivecore.util;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class ReflectionUtil
|
public class ReflectionUtil
|
||||||
{
|
{
|
||||||
@ -32,4 +34,45 @@ public class ReflectionUtil
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean transferField(Class<?> clazz, Object from, Object to, String fieldName)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Field field = clazz.getDeclaredField(fieldName);
|
||||||
|
field.setAccessible(true);
|
||||||
|
Object value = field.get(from);
|
||||||
|
field.set(to, value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean transferFields(Class<?> clazz, Object from, Object to, List<String> fieldNames)
|
||||||
|
{
|
||||||
|
if (fieldNames == null)
|
||||||
|
{
|
||||||
|
fieldNames = new ArrayList<String>();
|
||||||
|
for (Field field : clazz.getDeclaredFields())
|
||||||
|
{
|
||||||
|
fieldNames.add(field.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String fieldName : fieldNames)
|
||||||
|
{
|
||||||
|
if ( ! transferField(clazz, from, to, fieldName)) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean transferFields(Class<?> clazz, Object from, Object to)
|
||||||
|
{
|
||||||
|
return transferFields(clazz, from, to, null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user