BeanBoxUtils { public static Constructor<?> getConstructor(Class<?> clazz, Class<?>... paramTypes) { try { return clazz.getConstructor(paramTypes); } catch (SecurityException e) { throw new IllegalStateException("Security exception found for Constructor: " + e.getMessage()); } catch (NoSuchMethodException e) { throw new IllegalStateException("Constructor not found: " + e.getMessage()); } }  static Constructor<?> getConstructor(Class<?> clazz, Class<?>... paramTypes); static void copyBoxValues(BeanBox from, BeanBox to); static Annotation[] getAnnotations(Object targetClass); static Map<String, Object> getAnnoAsMap(Object targetClass, String annoFullName); static boolean ifSameOrChildAnno(Class<? extends Annotation> annoType,
			Class<? extends Annotation>... annoTypes); static boolean checkAnnoExist(Object targetClass, Class<?> annoClass); static Map<String, Object> changeAnnotationValuesToMap(Annotation annotation); static Object checkAOP(Object aop); static BeanBox wrapParamToBox(Object param);  }
@Test public void constructorInjectTest() throws SecurityException, NoSuchMethodException { BeanBox box = class2BeanBox(Constinject1.class); Assert.assertEquals(Constinject1.class.getConstructor(), box.getConstructor()); box = class2BeanBox(Constinject2.class); Assert.assertEquals(Constinject2.class.getConstructor(String.class), box.getConstructor()); box = class2BeanBox(Constinject3.class); Assert.assertNotEquals(Constinject3.class.getConstructor(), box.getConstructor()); }