跳至主要内容

博文

目前显示的是 六月, 2022的博文

Java中使用MethodHandle的API反射

java-reflection-method-handle.md 简介 Java的反射API从1.0就开始提供,虽然反射的性能在逐步提高,而且对现在大部分应用来说,反射的开销都不太会影响性能。但是如果反射使用特别频繁或需要更进一步提高性能,可以使用从Java1.7开始提供的MethodHandle相关的API。 Method Handle method handle 的API有以下几个主要对象: Lookup 用于实例化各类method handle对象,是使用method handle的入口对象 MethodType 用于表示反射方法的参数对象 MethodHandle用于实际操作被反射的字段、方法等 下面使用一个简单的Person类来作为例子: public class Person { public String job ; private String name ; private String location ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public String getLocation ( ) { return location ; } public void setLocation ( String location ) { this . location = location ; } public void print ( ) { System . out . println ( "Person job is " + job ) ; } } 获得Class对象 获得class对象,之前常用的有Class.forName(),getClass(),这些方法也可以用。methodHandle