问一下反射和methodhandle的区别是啥?感觉meth
java吧
全部回复
仅看楼主
level 7
godblessyou93 楼主
问一下反射和methodhandle的区别是啥?感觉methodhandle能做的,反射也能做啊[疑问]
2018年01月10日 14点01分 1
level 1
我要好好学习了,想楼主一样优秀
2018年01月12日 05点01分 2
level 10
我要好好学习了,想楼主一样优秀
2018年01月12日 05点01分 3
level 2
Method Handles的引入是为了与已经存在的java.lang.reflect API相配合。他们分别是为了解决不同的问题而出现的。从性能角度上说,MethodHandle api要比反射快很多因为访问检查在创建的时候就已经完成了,而不是像反射一样等到运行时候才检查。但同时,Method Handles比反射更难用,因为没有列举类中成员,获取属性访问标志之类的机制。
另外,MethodHandles可以操作方法,更改方法参数的类型和他们的顺序。而反射则没有这些功能。
从以上角度看,反射更通用,但是安全性更差,因为可以在不授权的情况下使用反射对象。而method Handles遵从了分享者的能力。所以method handle是一种更低级的发现,适配和调用方法的方式,唯一的优点就是更快。所以反射更适合主流Java开发者,而method handle更适用于对编译和运行性能有要求的人。
2019年09月27日 03点09分 4
[大拇指]
2020年04月04日 11点04分
1