首页 > 后端开发 > C++ > 如何使用运行时类型参数调用通用 Java 方法?

如何使用运行时类型参数调用通用 Java 方法?

Patricia Arquette
发布: 2024-12-30 20:25:10
原创
184 人浏览过

How Can I Invoke a Generic Java Method with Runtime Type Arguments?

使用运行时类型参数调用泛型方法

问题:

您想要动态调用泛型方法,在运行时指定类型参数。但是,Java 不允许在泛型方法调用中直接进行类型参数解析。

解决方案:

要实现此目的,请使用 Java反射:

// Get the generic method
Method<T> method = MyTestClass.class.getMethod("myGenericMethod");

// Create a type array for the type arguments
Type[] typeArguments = { new TypeReference<T>() {}.getType() };

// Make the generic method specific
Method<T> specificMethod = method.makeGenericMethod(typeArguments);

// Invoke the specific method with an instance and parameters
T result = specificMethod.invoke(myInstance, parameters);
登录后复制

说明:

  1. 获取泛型方法:使用 getMethod() 从class.
  2. 创建类型数组:创建一个 Type[] 数组,用于保存泛型方法的类型参数。
  3. 生成特定方法:使用 makeGenericMethod() 创建具有指定类型参数的新方法实例。
  4. 调用: 使用invoke() 和实例调用特定方法

附加说明:

  • 您可以使用 newInstance() 从接口创建泛型类型的新实例。
  • 反射允许在运行时动态解析类型参数。
  • 泛型提供编译时类型检查,但反射允许动态场景中的灵活性。

以上是如何使用运行时类型参数调用通用 Java 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板