private Object newObjectInstanceWithParams(String classname, Object[] params) {
Object instance = null; try {
Class classType = Class.forName(classname);
Constructor>[] consts = classType.getConstructors();
Constructor> constructor = null;for(int i = 0; i < consts.length; i++) { int paramsLength = consts[i].getParameterAnnotations().length; //判断多少个参数,我想在这添加参数的类型,因为有一个类的2个构造函数都要2个参,但是类型不同if(paramsLength == params.length) {
constructor = consts[i]; break;
}
} if(constructor != null) {
Class>[] type = constructor.getParameterTypes();
instance = classType.getConstructor(type).newInstance(params);
}
} catch (ClassNotFoundException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {// TODO Auto-generated catch block
e.printStackTrace();
}
return instance;
}
我应该怎么获得并判断参数的类型?谢谢!!~