private static ClassWrapper getInstance0(Class<? extends ClassWrapper> wrapperClass) { Arguments.mustNotBeNull("enhancerClass", wrapperClass); Arguments.mustBeCompatibleWithValue("wrapperClass", wrapperClass, ClassWrapper.class); Arguments.mustNotBeAbstract("wrapperClass", wrapperClass); Constructor<? extends ClassWrapper> constructor; try { constructor = wrapperClass.getDeclaredConstructor(); } catch (NoSuchMethodException ex) { throw new IllegalArgumentException( mustSupportDefaultConstructor(wrapperClass), ex ); } constructor.setAccessible(true); try { return constructor.newInstance(); } catch (InstantiationException ex) { throw UncheckedException.rethrow(ex); } catch (IllegalAccessException ex) { throw new AssertionError("Internal bug", ex); } catch (InvocationTargetException ex) { throw UncheckedException.rethrow(ex.getTargetException()); } }
private static ClassEnhancer getInstance0( Class<? extends ClassEnhancer> enhancerClass) { Arguments.mustNotBeNull("enhancerClass", enhancerClass); Arguments.mustBeCompatibleWithValue("enhancerClass", enhancerClass, ClassEnhancer.class); Arguments.mustNotBeAbstract("enhancerClass", enhancerClass); Constructor<? extends ClassEnhancer> constructor; try { constructor = enhancerClass.getDeclaredConstructor(); } catch (NoSuchMethodException ex) { throw new IllegalArgumentException( mustSupportDefaultConstructor("enhancerClass", enhancerClass), ex ); } constructor.setAccessible(true); try { return constructor.newInstance(); } catch (InstantiationException ex) { throw UncheckedException.rethrow(ex); } catch (IllegalAccessException ex) { throw new AssertionError("Internal bug", ex); } catch (InvocationTargetException ex) { throw UncheckedException.rethrow(ex.getTargetException()); } }
Arguments.mustBeCompatibleWithValue("clazz", clazz, Singleton.class); Arguments.mustNotBeCompatibleWithValue("clazz", clazz, Externalizable.class); Arguments.mustNotBeAbstract("clazz", clazz); Constructor<?> constructor = null; for (Constructor<?> cons : clazz.getDeclaredConstructors()) {