public static boolean isCompatible(Class<?> c, Object o) {
        boolean pt = c.isPrimitive();
        if (o == null) {
            return !pt;
        }

        if (pt) {
            c = getBoxedClass(c);
        }

        return c == o.getClass() || c.isInstance(o);
    }
@Test
    void testIsCompatibleWithArray() {
        assertFalse(ReflectUtils.isCompatible(new Class[] {short.class, int.class}, new Object[] {(short) 1}));
        assertFalse(ReflectUtils.isCompatible(new Class[] {double.class}, new Object[] {"hello"}));
        assertTrue(ReflectUtils.isCompatible(new Class[] {double.class}, new Object[] {1.2}));
    }