public SunDefaultConstructorFactory() {
        try {
            Class<?> factoryClass = ClassUtil.forName("sun.reflect.ReflectionFactory");
            Method getReflectionFactory = factoryClass.getDeclaredMethod(
                "getReflectionFactory",
                new Class[0]
            );
            reflectionFactory = getReflectionFactory.invoke(null, new Object[0]);
            newConstructorForSerialization = factoryClass.getDeclaredMethod(
                "newConstructorForSerialization",
                new Class[]{Class.class, Constructor.class}
            );
        } catch (Exception e) {
            throw new RuntimeException("Could not create Sun Factory", e);
        }
    }