首页 > 解决方案 > 我可以使用变量作为通用指标吗?

问题描述

不幸的是,我不知道如何正确地提出我的问题。

但我认为举个例子,我想知道的就很清楚了:

我想创建一个泛型类的实例。但我还不知道类的类型。所以代替这个:

Foo<Type1, Type2> foo = new Foo<>();

我想做这样的事情:

Class<? extends Type> type = getExpectedType();
Foo<Type1, type> foo = new Foo<>();

我已经尝试过了,但它不起作用。但是类似的事情可能吗?

标签: javagenerics

解决方案


这在 Java 中是不可能的,因为类型变量不是表达式。更具体地说,Java 有Type Erasure,这意味着这些类型在运行时实际上并不存在,它们被编译器替换为 from 和 to 的向上转换和向下转换Object


推荐阅读