最近在用网络编程做一个小型服务器,在做映射这一块时遇到一个小问题:获得handler后如何跳到对应的类中执行,即如何根据类名创建实例。
这里有两种形式:带参数和不带参数,下面是我的理解,是否完全正确有待考证:
1.对于不带参数的情况,首先得到该类的Class对象,再调用newInstance方法即可得到空参数列表的实例,即:
Class c = Class.forName(className);//注意传进来的是完全限定名,即带上包名等
c.newInstance();
2.若要创建带参数的实例,则需要在得到该类的Class对象后,获得一个构造器,方法为Class.getConstructor(Class...parameterTypes),例如Class.getConstructor(String.class,OutputStream.class),表示一个参数列表类型为(String,Out