Class ClassUtils


  • public class ClassUtils
    extends java.lang.Object

    Operates on classes without using reflection.

    This class handles invalid null inputs as best it can. Each method documents its behavior in more detail.

    The notion of a canonical name includes the human readable name for the type, for example int[]. The non-canonical method variants work with the JVM names, such as [I.

    Since:
    2.0
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isAssignable​(java.lang.Class<?> cls, java.lang.Class<?> toClass)
      Checks if one Class can be assigned to a variable of another Class.
      static java.lang.Class<?> primitiveToWrapper​(java.lang.Class<?> cls)
      Converts the specified primitive Class object to its corresponding wrapper Class object.
      • Methods inherited from class java.lang.Object

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

      • ClassUtils

        public ClassUtils()
    • Method Detail

      • isAssignable

        public static boolean isAssignable​(java.lang.Class<?> cls,
                                           java.lang.Class<?> toClass)

        Checks if one Class can be assigned to a variable of another Class.

        Unlike the Class.isAssignableFrom(java.lang.Class) method, this method takes into account widenings of primitive classes and nulls.

        Primitive widenings allow an int to be assigned to a long, float or double. This method returns the correct result for these cases.

        Null may be assigned to any reference type. This method will return true if null is passed in and the toClass is non-primitive.

        Specifically, this method tests whether the type represented by the specified Class parameter can be converted to the type represented by this Class object via an identity conversion widening primitive or widening reference conversion. See The Java Language Specification, sections 5.1.1, 5.1.2 and 5.1.4 for details.

        Since Lang 3.0, this method will default behavior for calculating assignability between primitive and wrapper types corresponding to the running Java version; i.e. autoboxing will be the default behavior in VMs running Java versions > 1.5.

        Parameters:
        cls - the Class to check, may be null
        toClass - the Class to try to assign into, returns false if null
        Returns:
        true if assignment possible
      • primitiveToWrapper

        public static java.lang.Class<?> primitiveToWrapper​(java.lang.Class<?> cls)

        Converts the specified primitive Class object to its corresponding wrapper Class object.

        NOTE: From v2.2, this method handles Void.TYPE, returning Void.TYPE.

        Parameters:
        cls - the class to convert, may be null
        Returns:
        the wrapper class for cls or cls if cls is not a primitive. null if null input.
        Since:
        2.1