public static void main(String[] args){
Class<?> s=null;
try{
s = Class.forName("com.xlq.reflect01.Student");}catch (ClassNotFoundException e){
e.printStackTrace();}try{
//得到类的实例
Object o =s.newInstance();
//获取类的私有字段并为字段赋值
Field field =s.getDeclaredField("name");
Field field1=s.getDeclaredField("age");
field.setAccessible(true);
field1.setAccessible(true);
//为私有字段赋值
field.set(o, "张三");
field1.set(o, 18);
System.out.println(o);}catch (Exception e){
e.printStackTrace();}}
Student [name=张三, age=18]
利用反射获取类中的方法 Method
public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException{
Class<?> s=null;
try{
s = Class.forName("com.xlq.reflect01.Student");}catch (ClassNotFoundException e){
e.printStackTrace();}
//获取所有修饰权限的方法
Method []methods1=s.getDeclaredMethods();
//不能获取private/protected/default方法
Method []methods2=s.getMethods();
for (Method method : methods1){
System.out.println(method);}
System.out.println("---------------------------------");
for (Method method : methods2){
System.out.println(method);}}
public java.lang.String com.xlq.reflect01.Student.toString()
public java.lang.String com.xlq.reflect01.Student.getName()
public void com.xlq.reflect01.Student.setName(java.lang.String)
public int com.xlq.reflect01.Student.getAge()
private void com.xlq.reflect01.Student.show(java.lang.String)
public void com.xlq.reflect01.Student.setAge(int)
-----------------
public java.lang.String com.xlq.reflect01.Student.toString()
public java.lang.String com.xlq.reflect01.Student.getName()
public void com.xlq.reflect01.Student.setName(java.lang.String)
public int com.xlq.reflect01.Student.getAge()
public void com.xlq.reflect01.Student.setAge(int)
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()