1.
2.
1)
2)
3)
4)
3.
4.
5.
6.
a)
Class<?> classType = String.class;
Object obj = classType.newinstance();
b)
Class<?> classType = String.class;
Constructor cons = classType.getConstructor(new Class[]{});
Object obj = cons.newinstance(new Object[]{});
若想通过类的带参数的构造方法生辰对象,只能使用下面一种方式:
Class<?> classType = String.class;
Constructor cons = classType.getConstructor(String.class);
7.
8.
a)
b)
c)
9.
package com.reflection;
importjava.lang.reflect.Method;
publicclassReflectionTest
{
}
10.
package com.reflection;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Private
{
public static void main(String[] args) throws Exception
{
Private1 pr = new Private1();
Class<?> classType = pr.getClass();
Field field = classType.getDeclaredField("name");
String getMethod= "get" + field.getName().substring(0,1).toUpperCase() + field.getName().substring(1,field.getName().length());
Method method = classType.getMethod(getMethod, new Class[]{});
field.setAccessible(true);
field.set(pr, "lisi");
String name = (String)method.invoke(pr, new Object[]{});
System.out.println(name);
}
}
class Private1
{
private String name = "zhangsan";
public String getName()
{
return name;
}
}