How to get a Class Object from the Class Name in Java

前端 未结 5 913
故里飘歌
故里飘歌 2020-12-15 15:37

I know the class name, say \"MyClass\" and want to retrieve the Class object, ie. MyClass.class for future references. Is ther

5条回答
  •  孤城傲影
    2020-12-15 16:01

    It's also worth noting that the above suggestions are correct, but will only work for default (parameterless) constructors. You could also do something like:

        public Object newInstance(String className, Object...args) throws Exception {
            Class clazz = Class.forName(className);
            if(args == null || args.length == 0) {
                return clazz.newInstance();
            }
    
            List> argTypes = new ArrayList>();
            for(Object object : args) {
                argTypes.add(object.getClass());
            }
            Constructor explicitConstructor = clazz.getConstructor(argTypes.toArray(new Class[argTypes.size()]));
            return explicitConstructor.newInstance(args);
        }
    

提交回复
热议问题