java通过反射以及MethodHandle执⾏泛型参数的静态⽅法开发过程中遇到⼀个不能直接调⽤泛型⼯具类的⽅法,因此需要通过反射来摆脱直接依赖。
被调⽤静态⽅法⽰例
public class test{
public static <T> T get(Class<T> tClass){
try {
Data(tClass);
} catch (Exception e){
return null;
}
}
}
调⽤者⽰例
1public static <T> T getData(Class<T> tClass) {
2try {
3            MethodType methodType = hodType(Object.class, Class.class);
4            MethodHandle method = MethodHandles.lookup().findStatic(Class.forName("st"), "get", methodType);
5return (T) method.invoke(tClass);
6        }catch (Throwable e){
7return null;
8        }
9    }
⼀开始没搞明⽩如何能获取到泛型⽅法的⽅法句柄。
后来发现可以直接⽤ hodType(Object.class, Class.class) 表⽰。。。。基础知识还是重要。java反射的作用及应用场景

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。