Java反射机制

Java反射机制

在运行状态中
对于任意一个类,都能知道这个类的所有属性和方法
对于任意一个对象,都能调用它的任意属性和方法
这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制

Class类

Class类是Java反射机制的根源。想要获得一个类的方法属性,首先就要获取这个类的类类对象。

获取类类对象有三种方法

package testAB;
/**
 * Java反射机制
 * @author lxw
 *
 */
public class Java_reflect {

    public static void main(String[] args) throws Exception {
        Car car = new Car();
        //通过类名获取类类对象
        Class c1 = Car.class;
        //通过实例获取类类对象
        Class c2 = car.getClass();
        //通过类类方法forName("类的路径")
        Class c3 = null;
        try {
            c3 = Class.forName("testAB.Car");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(c1 == c2);//true
        System.out.println(c2 == c3);//true
        System.out.println(c1 == c3);//true

        /**
         * 类类对象使用方法
         */
        //获取类类对象名称
        System.out.println(c1.getName());
        //获取类类对象的公有方法
        c1.getMethods();
        //获取类类对象实例
        Car car1 = (Car)c1.newInstance();
        car1.run();
        //获取构造方法
        c1.getConstructors();
        //获取类类对象属性
        Field[] fields = c1.getFields();
        for(Field field :fields){
            //成员属性的类型
            Class type = field.getType();
        }
    }

}
class Car{
    String car_Name;
    public void run(){
        System.out.println("Car run...");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值