Java基础加强——反射

反射

1.如何理解反射

反射是Java中特有的一种技术,是JAVA中自省特性的一种实现(对象运行时动态发现对象成员),可以基于此特性实现java的动态编程(例如对象创建,成员调用等).

2.反射的应用场景

1)框架中对象的构建.
a)mybatis映射元素的resultType,resultMap等
b)spring中的bean对象(,@Service,…)
2)框架中方法的调用.

a)对象set方法,get方法,…
b)spring mvc 控制层方法,…

3.案例分析

1)基于字节码对象获取无参构造方法对象,并构建类的实例对象.

	//基于类的字节码对象创建类的实例对象
	private static <T>T doCreateInstance(Class<T> cls) throws Exception{
		//1.获取类中的无参构造方法对象
		Constructor<T> con=cls.getDeclaredConstructor();
		//2.基于构造方法对象构建类的实例对象
		con.setAccessible(true);//设置构造方法可访问
		return (T)con.newInstance();//默认调用无参构造函数
	}

2)基于字节码对象获取带参构造方法对象,并构建类的实例对象.

	@SuppressWarnings("unused")
	private static <T>T doCreateInstance(
			Class<T> cls,//字节码对象
			Object[] args,//创建实例对象需要的实际参数
			Class<?>[] paramTypes)throws Exception {
		//1.获取构造方法对象
		Constructor<T> con=
		cls.getDeclaredConstructor(paramTypes);
		//2.基于构造方法对象构建类的实例对象
		return con.newInstance(args);
	}

4.总结

反射在框架中应用较多,另外在手写spring构建实例对象时,也多次用到反射。想要了解更详细的,可面向百度。部分内容摘自齐*的文档,在此向老师表达敬意。看过的小伙伴可以评论和支持哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
看到那些要积分的很不酸,发布免费版本。 第1部分(2个程序包) HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门样例demo 第2部分(3个程序包) javasyntax.zip 05.Java核心语法详解 javaoop.zip 06.Java面向对象编程(计算器) javaexception.zip 07.Java面向对象编程扩展(计算器异常捕捉实例) 第3部分(5个程序包) javaio.zip 09.Java输入/输出流 javavi.zip 09.Java输入/输出流上机作业参考(文本编辑器) javathread.zip 10.Java多线程编程(线程池、生产者消费者、存取款实例) javautil.zip 11.Java常用实体类 javaxml.zip 14.XML属性文件 第4部分(6个程序包) javagui.zip 15.Java GUI库对比实例 javaawt.zip 16.AWT图形界面开发——Java文本编辑器 javamedia.zip 17.AWT多媒体编程——录音机、MP3播放器、视频拍照、视频播放器 javaswing.zip 18.Swing图形界面开发——Java文本编辑器 javaswt.zip 19.SWT图形界面开发——Java文本编辑器 javajface.zip 20.SWT增强组件库JFace 第5部分(5个程序包) javaapplet.zip 21.Applet网络组件——电子相册 javanet.zip 22.Java网络编程详解(Socket/UDP实例、简单聊天系统) javanio.zip 23.NIO非阻塞通信(Socket/UDP实例、简单聊天系统) javarmi.zip 24.RMI编程(HelloWorld例、计算器实例) javacorba.zip 25.Corba编程(HelloWorld例、计算器实例) 第6部分(4个程序包) javareflection.zip 26.Java反射机制与动态代理 javageneric.zip 27.Java泛型编程 javaannotation.zip 28.Java注释符编程 javafeature.zip 29.Java5.0语言新特性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值