Java:使用 lambda 参数获取泛型方法的实际类型[重复]

2023-12-15

我问了一些关于lambdas here Java:如何解析lambda参数的泛型类型?,但这一个有点不同。

我有方法签名:

public <P> void handle(Consumer<P> consumer) {
...
}

我可以用它lambda:

.<Integer>handle(p -> System.out.println(p * 2));

我可以以某种方式解析实际的泛型类型吗? 我的意思是我想要得到Integer.class在那之内handle method.

顺便说一句,我可以这样解决这个问题:

 public <P> void handle(Class<P> pClass, Consumer<P> consumer) {...}

 .handle(Integer.class, p -> System.out.println(p * 2));

但如果我们将 lambda 更改为内联实现,它看起来就不那么完美了。


不,这是不可能的。

你不能得到类似的东西T.class,因为泛型在运行时被删除。你确实需要通过Class<T>能够获得课程本身。

我也闻到了 XY 问题。也许你really需要类类型,但没有进一步的信息,这有点味道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:使用 lambda 参数获取泛型方法的实际类型[重复] 的相关文章

随机推荐

  • 我的应用程序通过 WiFi 运行。但安卓不能超过3G?有什么猜测吗?

    我开发了一个应用程序 目标版本是4 Android 1 6 到7 Android 2 1 我在开发手机 2 Google Io Device 1 6 版本 上测试了这个应用程序 我正在通过互联网做一些 xml 解析工作 我设置了
  • 用于开发 Mac 应用程序的正确编程语言 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正打算买一台Mac 我也希望能够为 Mac 开发 GUI 应用程序 目前我使用 VisualStudio 作为 IDE 使用 C 进行开发 我还了解 Java 并且熟悉 NetBeans
  • MVC3 以 zip 文件形式返回多个 pdf

    我有一个返回包含多个页面的 pdf 使用 iTextSharp 的视图 但现在我必须更改它 以便每个页面都是一个单独的 pdf 具有自己的唯一标题 并返回 zip 文件 我的原始代码如下所示 public FileStreamResult
  • 从 Google Apps 脚本启动 Python 脚本

    我已经寻找了一段时间 由于找不到答案 所以我问这个 我的问题很简单 我有一个链接到一张表格的表格 绑定到这张表后 我运行了一个脚本 根据刚刚插入的数据执行计算并采取操作 不过 我想对给定的 API 执行请求 为此 我有一个 python 工
  • 如何获取Oracle中某个表的所有信息?

    如何在 Oracle 中获取有关表 其列和约束等的所有信息 我在用 desc MY TABLE 但这只是给我列名 空值和类型 尝试 dbms metadata 包 你可以找到更多信息here
  • 如何检查 COM 属性或方法是否存在而不生成异常?

    我正在处理一些遗留代码 这些代码创建包含属性和 或方法名称的字符串列表 然后尝试将这些属性或方法应用到 COM 对象 COM 对象的属性或方法不保证存在 它可能是我不知道的属性或方法 此时 如果属性或方法不存在 则会将其捕获为 COM 异常
  • Eloquent count() 总是返回 1

    我有以下查询 Item select items id inventory quantity gt leftJoin inventory items id inventory item id gt groupBy items id gt c
  • JS 开源国家地区选择器

    我正在为我的项目开发一个库 框架 我想做一个国家选择器 用户选择美国 然后将所有州填充到州框中 用户选择加拿大 然后在另一个框中填充加拿大的所有区域 用户选择墨西哥 然后将墨西哥的所有区域填充到另一个框中 用户选择英国 然后将英国的所有区域
  • 将 #includes 包装在 #ifndef 中 - 会增加任何价值吗?

    我继承了C C 代码库 以及许多 cpp 文件中 include指令包含在 ifndef 中 标头内部包含单个包含内容 define 例如 ifndef INC WINDOWS include
  • ASCX 文件内的 ClientID

    我正在尝试获取 ascx 用户控制标记 文件中的 CLientID 虽然这 My id is 呈现为 我的 ID 是 fracTemplateCtrl This
  • 带有图像的动态 UITableView

    有类似的问题 但没有一个答案对我有用 在动态表格中 我想显示具有不同高度的图像 每个细胞都有一个UIImageView with contentMode scaleAspectFit因此图像很好地占据了桌子的宽度并根据需要占据了高度 Cel
  • MySQL 更新语句中的分号导致语法错误

    我有一个带有文章表的 MySQL DB 5 7 18 每篇文章都有一个 HTML 字符串形式的摘要abstract柱子 由于 HTML 编辑器中的错误 许多 HTML 标签都被烦人的样式污染 如下所示 h1 style color rgb
  • 如何根据实值输入计算 fft() 输出的幅度和相位角? [关闭]

    Closed 这个问题是无关 目前不接受答案 我有 24 个来自实值信号的样本 我执行fft 对样本进行函数并获得复杂的输出 我想获得每个非冗余谐波的幅度和相位角 我知道我的计算必须考虑混叠 因为我有实值数据 我如何能 1 从双边傅里叶变换
  • Heroku process.env.port 未定义

    我正在尝试在heroku 上运行node js 应用程序 我让它在本地工作 但是当我将其部署到 heroku 上时 出现以下错误 Error R10 Boot timeout gt Web process failed to bind to
  • 带有 ROLE_ANONYMOUS 的 AngularJS 和 Spring Security 仍然返回 401

    我们正在构建一个 Angular Material 应用程序 使用 RESTful Spring MVC API 以及 Spring Security 和 OAUTH2 出于测试目的 我们授予 ROLE ANONYMOUS 对 users
  • 位移位和整数提升?

    通常 C 要求将二元运算符的操作数提升为较高级别操作数的类型 可以利用这一点来避免用冗长的强制转换填充代码 例如 if x 48U lt 10 y x 0ULL lt lt 40 etc 然而 我发现 至少对于 gcc 这种行为不适用于位移
  • 增强随机数生成器

    有谁有最喜欢的增强随机数生成器吗 您能解释一下如何将其实现到代码中吗 我正在尝试让梅森扭转器发挥作用 并且想知道是否有人偏爱其他扭转器之一 该代码改编自 boost 手册 http www boost org doc libs 1 42 0
  • System.InvalidOperationException:方案已存在:Identity.Application

    我想为用户添加我自己的自定义数据 所以我遵循了教程在 ASP NET Core 项目中向 Identity 添加 下载和删除自定义用户数据 我已经有一个现有的应用程序 所以我无法逐行遵循该教程 我现有的应用程序已经有一个用户数据库 当我遇到
  • 如何处理高图表中轴标签上的鼠标事件

    如何在 highcharts 轴标签上捕获鼠标事件 我希望处理标签上的单击事件以执行某些操作 高图演示 轴标签可以通过以下方式访问yAxis ticks x label element 这是标签的元素 现在该元素上的任何事件都可以按如下方式
  • Java:使用 lambda 参数获取泛型方法的实际类型[重复]

    这个问题在这里已经有答案了 我问了一些关于lambdas here Java 如何解析lambda参数的泛型类型 但这一个有点不同 我有方法签名 public p void handle Consumer p p consumer 我可以用