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 testIsCompatible() {
        assertTrue(ReflectUtils.isCompatible(short.class, (short) 1));
        assertTrue(ReflectUtils.isCompatible(int.class, 1));
        assertTrue(ReflectUtils.isCompatible(double.class, 1.2));
        assertTrue(ReflectUtils.isCompatible(Object.class, 1.2));
        assertTrue(ReflectUtils.isCompatible(List.class, new ArrayList<String>()));
    }