开发过程中遇到一个不能直接调用泛型工具类的方法,因此需要通过反射来摆脱直接依赖。

被调用静态方法示例

public class test{
public static <T> T get(Class<T> tClass){
try {
return test2.getData(tClass);
} catch (Exception e){
return null;
}
}
}

调用者示例

1     public static <T> T getData(Class<T> tClass) {
2 try {
3 MethodType methodType = MethodType.methodType(Object.class, Class.class);
4 MethodHandle method = MethodHandles.lookup().findStatic(Class.forName("com.xxx.adapter.context.test"), "get", methodType);
5 return (T) method.invoke(tClass);
6 }catch (Throwable e){
7 return null;
8 }
9 }

一开始没搞明白如何能获取到泛型方法的方法句柄。

后来发现可以直接用 MethodType.methodType(Object.class, Class.class) 表示。。。。基础知识还是重要。

最新文章

  1. AngularJS笔记---作用域和控制器
  2. CentOS下如何完全卸载MySQL?卸载自带的mysql
  3. rsync --exclude 参数
  4. 如何让Android字体自适应屏幕分辨率
  5. KB975517 &quot;The update does not apply to your system&quot;
  6. (ASP.net)利用Application对象制作简单聊天室
  7. Java正则表达式应用总结
  8. BZOJ 1492 货币兑换Cash
  9. Apache、Tomcat、JBoss、WebLogic的区别与关系
  10. 配置hibernate数据库连接
  11. Unreal Engine 4 RenderTarget制作Live Camera效果
  12. 51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)
  13. 零基础如何迅速学习HTML5?新手小白学习web前端H5自白!
  14. Java并发中的CopyOnWrite容器
  15. 使图片自适应div大小
  16. POJ3252-RoundNumbers-排列组合
  17. 计算机中的K、M、G、T到底指的是
  18. ASP.NET MVC 表格操作
  19. EventUtil——跨浏览器的事件对象
  20. APUE(5)---标准I/O库 (3)

热门文章

  1. python 识别登陆验证码图片(完整代码)
  2. Js文章内容监听复制代码
  3. 【mysql练习】转置,总计,分组
  4. labwindows/cvi activex 控件无法正常使用问题解决
  5. Flink生产数据到Kafka频繁出现事务失效导致任务重启
  6. mac中Mysql各种版本下载
  7. HFSS仿真疑问
  8. 向excel中写数据的python代码
  9. 普通的patch 和使用git 打patch
  10. Loadrunner录制时弹出Microsoft Visual C++ Runtime Library解决方案