有可能以这种方式创建一个泛型类吗?

时间:2014-01-30 16:01:54

标签: java generics

我想知道这个创作是否可行:

Class<String> stringClass = String.class;
MyGenericClass<stringClass> myGenericClass;

我在IDE中尝试过,但是出现了编译错误。

2 个答案:

答案 0 :(得分:7)

Java语言规范说明了type arguments

  

类型参数可以是引用类型或通配符。通配符   在只有部分知识类型的情况下很有用   参数是必需的。

此示例中的对象stringClass不是引用类型,也不是通配符。

类型参数,在<>之间放置在参数化类型变量声明,构造函数或方法调用表达式等中的部分,可以是引用类型或通配符。例如,

MyGenericClass<String> variable;
// or
MyGenericClass<?> variable;

请注意,基本类型也不能用作类型参数。

答案 1 :(得分:1)

不可能,类型声明必须是编译时常量,不能是变量。