code: public static boolean areConvertibleClasses (@Nonnull final Class <?> aSrcClass, @Nonnull final Class <?> aDstClass)
    {
      ValueEnforcer.notNull (aSrcClass, "SrcClass");
      ValueEnforcer.notNull (aDstClass, "DstClass");
  
      // Same class?
      if (aDstClass.equals (aSrcClass))
        return true;
  
      // Default assignable
      if (aDstClass.isAssignableFrom (aSrcClass))
        return true;
  
      // Special handling for "int.class" == "Integer.class" etc.
      if (aDstClass == getPrimitiveWrapperClass (aSrcClass))
        return true;
      if (aDstClass == getPrimitiveClass (aSrcClass))
        return true;
  
      // Not convertible
      return false;
    }
docs: Check if the passed classes are convertible. Includes conversion checks
  between primitive types and primitive wrapper types.
  
  @param aSrcClass
  First class. May not be <code>null</code>.
  @param aDstClass
  Second class. May not be <code>null</code>.
  @return <code>true</code> if the classes are directly convertible.