本系列博客汇总在这里:框架基础 汇总
获取类对象的属性、方法和构造器
代码演示
package cn.wyx.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ReflectDemo1
{
public static void main(String[] args) throws Exception
{
Class<?> class1 = Class.forName("cn.wyx.reflect.Person");
// 获得类对象的一个属性
Field field = class1.getDeclaredField("address");
System.out.println(field);
// 获得一个具体的方法
Method method = class1.getDeclaredMethod("getName", new Class[] {});
Method method1 = class1.getDeclaredMethod("setName",new Class[] { String.class });
System.out.println(method);
System.out.println(method1);
// 获得构造器
Constructor<?> constructor = class1.getDeclaredConstructor(new Class[] {});
System.out.println(constructor);
Constructor<?> constructor2 = class1.getDeclaredConstructor(new Class[] { Integer.class,String.class, String.class });
System.out.println(constructor2);
}
}
package cn.wyx.reflect;
public class Person
{
private Integer id;
private String name;
private String address;
public Person()
{
}
public Person(Integer id, String name, String address)
{
super();
this.id = id;
this.name = name;
this.address = address;
}
private static void printInfo()
{
System.out.println("静态方法的反射调用");
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
@Override
public String toString()
{
return "Person [id=" + id + ", name=" + name + ", address=" + address
+ "]";
}
}
如有错误,欢迎指正!