估计你是在看张老师的反射视频吧,这里边老师只是举个例子,怎么得到String类中String(StringBuffer buffer)这个构造方法,所以传入的传入的参数是StringBuffer.class,这是在知道有String(StringBuffer buffer)这个构造函数的前提下进行的反射
假如你不知道String类有那些构造方法,、具体构造方法的参数是什么类型的也不知道,你可以通过如下方法得到每个构造方法的参数类型:
public class Test6
{
public static void main(String[] args) throws Exception
{
Constructor[] cons = String.class.getDeclaredConstructors();
for(Constructor con : cons)
{
Class[] parameterType = con.getParameterTypes();
for(Class clazz : parameterType)
{
System.out.print(clazz.getSimpleName() + ", ");
}
System.out.println();
}
}
}
运行结果是
String,
char[],
char[], int, int,
int[], int, int,
byte[], int, int, int,
byte[], int,
StringBuilder,
byte[], int, int, String,
byte[], int, int, Charset,
byte[], String,
byte[], Charset,
byte[], int, int,
byte[],
StringBuffer,
int, int, char[],
你会发现里边有你想要的StringBuffer类型的参数,如果你想换别的可以根据不同类型的参数,选择不同的构造函数。 |