繁体   English   中英

Java构造函数列表作为字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM