/** * Convenient method. * @param clazz * @param argClass * @param arg * @see #newInstance(Class, Class[], Object[]) */ public static Object newInstance(final Class< ? > clazz, final Class< ? > argClass, final Object arg) { final Class< ? >[] argClasses = new Class[1]; argClasses[0] = argClass; final Object[] args = new Object[1]; args[0] = arg; return newInstance(clazz, argClasses, args); }
/** * Convenient method. * @param clazz * @param argClass0 * @param argClass1 * @param arg0 * @param arg1 * @see #newInstance(Class, Class[], Object[]) */ public static Object newInstance(final Class< ? > clazz, final Class< ? > argClass0, final Class< ? > argClass1, final Object arg0, final Object arg1) { final Class< ? >[] argClasses = new Class[2]; argClasses[0] = argClass0; argClasses[1] = argClass1; final Object[] args = new Object[2]; args[0] = arg0; args[1] = arg1; return newInstance(clazz, argClasses, args); }
@Override public void onClick() { final AbstractSecuredPage editPage = (AbstractSecuredPage) ReflectionHelper.newInstance(editClass, PageParameters.class, pageParameters); if (editPage instanceof AbstractEditPage) { ((AbstractEditPage<?, ?, ?>) editPage).setReturnToPage(returnToPage); } setResponsePage(editPage); } };
/** * Called if the user clicks on the "new" (new entry) link. * * @param params nullable or set by derived class methods before calling super.onNewClick(); * @return The edit page (response page). The return value has no effect. It's only useful for derived class methods * which calls super.onNewClick(); */ protected AbstractEditPage<?, ?, ?> redirectToEditPage(PageParameters params) { if (params == null) { params = new PageParameters(); } final Class<?> editPageClass = getClass().getAnnotation(ListPage.class).editPage(); final AbstractEditPage<?, ?, ?> editPage = (AbstractEditPage<?, ?, ?>) ReflectionHelper.newInstance(editPageClass, PageParameters.class, params); editPage.setReturnToPage(AbstractListPage.this); setResponsePage(editPage); return editPage; }
@Override public void onClick() { final PageParameters pageParams = WicketUtils.getPageParameters(params); if (objectId != null) { pageParams.add(AbstractEditPage.PARAMETER_KEY_ID, String.valueOf(objectId)); } final AbstractSecuredPage editPage = (AbstractSecuredPage) ReflectionHelper.newInstance(editPageClass, PageParameters.class, pageParams); if (editPage instanceof AbstractEditPage) { ((AbstractEditPage<?, ?, ?>) editPage).setReturnToPage(returnToPage); } setResponsePage(editPage); } };
@Test public void checkInstantiation() { TestBean obj = (TestBean) ReflectionHelper.newInstance(TestBean.class, int.class, 42); assertEquals(42, obj.arg0); obj = (TestBean) ReflectionHelper.newInstance(TestBean.class, Integer.class, String.class, 42, "Hurzel"); assertEquals(42, obj.arg0); assertEquals("Hurzel", obj.arg1); } }