Package org.skr.common.util
Class BeanUtil
- java.lang.Object
-
- org.skr.common.util.BeanUtil
-
public class BeanUtil extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Map<java.lang.Class<?>,java.lang.Class<?>>PRIMITIVE_TYPES
-
Constructor Summary
Constructors Constructor Description BeanUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <R> RcallMethod(java.lang.Class<?> clazz, java.lang.Object object, @NonNull java.lang.String methodName, java.lang.Object... parameters)This method doesn't always function as expected.static <R,O>
RcallMethod(O object, @NonNull java.lang.String methodName, java.lang.Object... parameters)static <E> voidcopyFields(E source, E target)Copy Objectsourceto Objecttarget.static <E> voidcopyFields(E source, E target, boolean ignoreNullField, boolean includeOrExclude, java.lang.String... fields)static <E> voidcopyFieldsExcluding(E source, E target, java.lang.String... fields)static <E> voidcopyFieldsIncluding(E source, E target, java.lang.String... fields)static <T extends java.io.Serializable>
TdeepClone(T o)static java.lang.Class<?>getCollectionParameterizeType(@NonNull java.lang.reflect.Parameter parameter)static java.lang.reflect.MethodgetDeclaredMethod(@NonNull java.lang.Class<?> clazz, @NonNull java.lang.String methodName, java.lang.Class<?>... parameterTypes)static java.lang.Class<?>getFieldClass(@NonNull java.lang.Object target, @NonNull java.lang.String fieldName)static <T> TgetFieldValue(@NotNull java.lang.Object target, @NonNull java.lang.String path)static java.lang.reflect.MethodgetMethod(@NonNull java.lang.Class<?> clazz, @NonNull java.lang.String methodName, java.lang.Class<?>... parameterTypes)static booleanisPrimitive(@NonNull java.lang.Class<?> clazz)static booleanisPrimitive(java.lang.Object val)static voidsetFieldValue(@NonNull java.lang.Object target, @NonNull java.lang.String fieldName, java.lang.Object value)
-
-
-
Method Detail
-
isPrimitive
public static boolean isPrimitive(java.lang.Object val)
-
isPrimitive
public static boolean isPrimitive(@NonNull @NonNull java.lang.Class<?> clazz)
-
getCollectionParameterizeType
public static java.lang.Class<?> getCollectionParameterizeType(@NonNull @NonNull java.lang.reflect.Parameter parameter)
-
copyFields
public static <E> void copyFields(@NonNull E source, @NonNull E target)Copy Objectsourceto Objecttarget. This coping is not recursive. If a source field isCollection, it's element will beCollection.addAll(Collection)to corresponding target field, instead of copy theCollectionreference. Hence if target'sCollectionis not initialized and remains null, it won't be copied.
-
copyFieldsExcluding
public static <E> void copyFieldsExcluding(@NonNull E source, @NonNull E target, java.lang.String... fields)- Parameters:
fields- to be excluded for copying- See Also:
copyFields(Object, Object)
-
copyFieldsIncluding
public static <E> void copyFieldsIncluding(@NonNull E source, @NonNull E target, java.lang.String... fields)- Parameters:
fields- to be included for copying- See Also:
copyFields(Object, Object)
-
copyFields
public static <E> void copyFields(@NonNull E source, @NonNull E target, boolean ignoreNullField, boolean includeOrExclude, java.lang.String... fields)
-
getFieldValue
public static <T> T getFieldValue(@NotNull @NotNull java.lang.Object target, @NonNull @NonNull java.lang.String path)
-
getFieldClass
public static java.lang.Class<?> getFieldClass(@NonNull @NonNull java.lang.Object target, @NonNull @NonNull java.lang.String fieldName)
-
setFieldValue
public static void setFieldValue(@NonNull @NonNull java.lang.Object target, @NonNull @NonNull java.lang.String fieldName, java.lang.Object value)
-
deepClone
public static <T extends java.io.Serializable> T deepClone(@NonNull T o)
-
getDeclaredMethod
public static java.lang.reflect.Method getDeclaredMethod(@NonNull @NonNull java.lang.Class<?> clazz, @NonNull @NonNull java.lang.String methodName, java.lang.Class<?>... parameterTypes)
-
getMethod
public static java.lang.reflect.Method getMethod(@NonNull @NonNull java.lang.Class<?> clazz, @NonNull @NonNull java.lang.String methodName, java.lang.Class<?>... parameterTypes)
-
callMethod
public static <R,O> R callMethod(O object, @NonNull @NonNull java.lang.String methodName, java.lang.Object... parameters)
-
callMethod
public static <R> R callMethod(java.lang.Class<?> clazz, java.lang.Object object, @NonNull @NonNull java.lang.String methodName, java.lang.Object... parameters)This method doesn't always function as expected. Be 100% sure and tested when you use it. As known, this method is not worked for following case: * parameter type is primitive number, e.g. int.class * parameter type is general type, e.g. Object.class
-
-