java反射入_Java反射入门

关键字: 反射机制 一、反射的概念 : 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面

简单实例: package com.zhaixiaofeng.reflect public class Car(){ private String brand; private String color; private String maxSpeed; public Car(){}; public Car(String brand, String color, String maxSpeed){ this.brandk = brand; this.color = color; this.maxSeepd = maxSpeed; } public void introduce(){ System.out.pring("brand:" + brand + ";color:" + color + ";maxSpeed" + maxSpeed); } } public static Car initByDefaultConstructor() throws ThrowableException{ //(1)Get object constrator by classloader ClassLoader loader = Thread.currentThread().getContextClassLoader(); Class cls = loader.loadClass(com.zhaixiaofeng.reflect.Car); //(2)Get default construtor and instance object car Constructor cons = cls.getDeclaredConstructor(Class[],null); Car car = (Car)cons.newInstance(); //(3)Set object properties by reflect Mejava 反射详解 一 前言 反射是java中十分重要的一部分,初学者往往因为自认为用处不发而放弃对反射机制的学习,然而到后期javaweb以及Android的学期会发现java使用的地方非常多。因此这篇文章献给初学者,希望能够有所帮助。 代码参考了网上众多大牛以及thinkthod setBrand = class.getMethod("setBrand",String.class); setBrand.invoke(car,"falali"); return car; } public ReflectDemo{

public stataic void main(String [] args){ //Old mothed Car oldCar = new Car("benchi","red","1000"); oldCar.introduce(); //New mothed by reflect Car newCar = initDefaultConstructor(); newCar.introduce();

} } 解释: 在ReflectDemo类中,使用到了Java中常用的反射类:ClassLoader,Class,Constructor,Method. 通过这些反射类方法、可以直接调用Class的各个功能。 (1)获取当前线程的ClassLoader,通过指定的全限定类:com.zhaixiaofeng.reflect.Car,装载Car类对应的反射实例. (2)通过Car的反射类对象获取Car的构造函数对象cons,通过构造函数的newInstance()方法实例化Car对象, 其效果等同于newCar(); (3)通过Car的反射类对象的getMethod(String methodName,Class paramClass)获取属性的Setter方法对象,第一个参数是目标Class的方法名;第二个参数是方法入参的对象类型。获取方法反射对象后,即可通过invoke(Object obj,Object param)方法调用目标类的方法,该方法的第一个参数是操作的目标类对象实例;第二个参数是目标方法的入参。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值