Class 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> R callMethod​(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>
      R
      callMethod​(O object, @NonNull java.lang.String methodName, java.lang.Object... parameters)  
      static <E> void copyFields​(E source, E target)
      Copy Object source to Object target.
      static <E> void copyFields​(E source, E target, boolean ignoreNullField, boolean includeOrExclude, java.lang.String... fields)  
      static <E> void copyFieldsExcluding​(E source, E target, java.lang.String... fields)  
      static <E> void copyFieldsIncluding​(E source, E target, java.lang.String... fields)  
      static <T extends java.io.Serializable>
      T
      deepClone​(T o)  
      static java.lang.Class<?> getCollectionParameterizeType​(@NonNull java.lang.reflect.Parameter parameter)  
      static java.lang.reflect.Method getDeclaredMethod​(@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> T getFieldValue​(@NotNull java.lang.Object target, @NonNull java.lang.String path)  
      static java.lang.reflect.Method getMethod​(@NonNull java.lang.Class<?> clazz, @NonNull java.lang.String methodName, java.lang.Class<?>... parameterTypes)  
      static boolean isPrimitive​(@NonNull java.lang.Class<?> clazz)  
      static boolean isPrimitive​(java.lang.Object val)  
      static void setFieldValue​(@NonNull java.lang.Object target, @NonNull java.lang.String fieldName, java.lang.Object value)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • PRIMITIVE_TYPES

        public static java.util.Map<java.lang.Class<?>,​java.lang.Class<?>> PRIMITIVE_TYPES
    • Constructor Detail

      • BeanUtil

        public BeanUtil()
    • 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 Object source to Object target. This coping is not recursive. If a source field is Collection, it's element will be Collection.addAll(Collection) to corresponding target field, instead of copy the Collection reference. Hence if target's Collection is 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