ClassUtils#asSubclass should have an overload where primitive types are considered equal to each other. Might also be interesting as a dedicated method returning boolean as it's kind of a gotcha moment.
Important not to equate array types to each other, as int[] and Integer[] cannot be assigned to each other.