[英]Java Constructor List as string
我正在尝试使用类的构造函数名称填充字符串数组列表。 由于某种原因,它改为使用类名填充
Class<?> c = Class.forName(className);
Constructor<?>[] construct = c.getDeclaredConstructors();
for(int i = 0; i < construct.length; i++){
memberList.add(construct[i].getName());
}
构造函数始终使用类的名称-这就是您所看到的。
如果要在列表中使用构造器对象而不是构造器对象的名称 ,则需要删除“ .getName()” 。
就像Sunil所说的那样,构造函数与类具有相同的名称,因此您应在检查其参数方面区别对待。
要获取参数,您可以尝试以下代码:
public static void main(String[] args) throws ClassNotFoundException {
Class<?> c = Class.forName(Class1.class.getCanonicalName());
Constructor<?>[] constructors = c.getDeclaredConstructors();
ArrayList<String> memberList = new ArrayList<String>();
for(Constructor<?> constructor:constructors){
memberList.add(constructor.getName());
System.out.println("--------------------------------------");
System.out.println(String.format("constructor: %s",new Object[]{constructor}));
for(Class<?> paramType: constructor.getParameterTypes()){
System.out.println(String.format("constructor param type: %s",paramType));
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.