java 通过反射以及MethodHandle执行泛型参数的静态方法
2024-09-08 19:06:04
开发过程中遇到一个不能直接调用泛型工具类的方法,因此需要通过反射来摆脱直接依赖。
被调用静态方法示例
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) 表示。。。。基础知识还是重要。
最新文章
- AngularJS笔记---作用域和控制器
- CentOS下如何完全卸载MySQL?卸载自带的mysql
- rsync --exclude 参数
- 如何让Android字体自适应屏幕分辨率
- KB975517 ";The update does not apply to your system";
- (ASP.net)利用Application对象制作简单聊天室
- Java正则表达式应用总结
- BZOJ 1492 货币兑换Cash
- Apache、Tomcat、JBoss、WebLogic的区别与关系
- 配置hibernate数据库连接
- Unreal Engine 4 RenderTarget制作Live Camera效果
- 51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)
- 零基础如何迅速学习HTML5?新手小白学习web前端H5自白!
- Java并发中的CopyOnWrite容器
- 使图片自适应div大小
- POJ3252-RoundNumbers-排列组合
- 计算机中的K、M、G、T到底指的是
- ASP.NET MVC 表格操作
- EventUtil——跨浏览器的事件对象
- APUE(5)---标准I/O库 (3)