java - 我可以使用变量作为通用指标吗?
问题描述
不幸的是,我不知道如何正确地提出我的问题。
但我认为举个例子,我想知道的就很清楚了:
我想创建一个泛型类的实例。但我还不知道类的类型。所以代替这个:
Foo<Type1, Type2> foo = new Foo<>();
我想做这样的事情:
Class<? extends Type> type = getExpectedType();
Foo<Type1, type> foo = new Foo<>();
我已经尝试过了,但它不起作用。但是类似的事情可能吗?
解决方案
这在 Java 中是不可能的,因为类型变量不是表达式。更具体地说,Java 有Type Erasure,这意味着这些类型在运行时实际上并不存在,它们被编译器替换为 from 和 to 的向上转换和向下转换Object
。
推荐阅读
- java - BeanCreationException:创建类路径资源中定义的名称为“pgService”的 bean 时出错
- vba - 仅 Mac 上的 FileDialog 运行时 91 错误
- android - Android ViewModel 设计/架构
- android - 如果内容的高度大于屏幕,CardView 中的 ListView 不显示所有内容
- angular - 如何动态管理角度布局
- php - 拉拉维尔 5.6。无法在构造函数中获取错误消息
- node.js - 如何在 Nodejs 中执行主动睡眠/超时?
- asp.net-mvc - 现有 aspnet 核心 MVC 项目的轻量级博客引擎
- post - VueJs - 如何使用 axios 设置动态参数
- python - 计算两个通道中复杂数据的协方差矩阵(无复杂数据类型)