admin 管理员组

文章数量: 1184232


2023年12月23日发(作者:excel教程零基础教程下载)

java 泛型类的class方法

Java中的泛型类是指在类定义时使用了参数化类型(泛型)的类。在Java中,泛型类的`class`方法返回的是原始类型的`Class`对象。

具体来说,泛型类的`class`方法返回的是编译时擦除了类型参数的原始类型的`Class`对象。例如,对于声明为`List`的泛型类,在运行时通过``获取的`Class`对象是``,而不是`List.class`。

以下是一个示例:

```java

import ;

public class GenericClassExample {

public static void main(String[] args) {

List stringList = ("Hello", "World");

Class listClass = ss();

// 此时listClass为Class对象

Class rawType = ss();

// 此时rawType为Class对象,其类型参数被擦除

n(rawType); // 打印结果为class

}

}

```

在上面的示例中,首先创建了一个`List`对象`stringList`,然后通过`ss()`获取到`List`的`Class`对象`listClass`,然后再通过`ss()`获取到其原始类型`Class`对象`rawType`。可以看到,最终打印出来的是``,而不是``。这是因为泛型信息在运行时被擦除了,所以返回的是原始类型的`Class`对象。

需要注意的是,虽然泛型信息在运行时被擦除了,但是仍然可以通过反射来获取到类的泛型信息。例如,可以使用`TypeVariable`来表示类型参数,并通过`getGenericDeclaration()`方法获取声明该类型参数的泛型类或泛型方法的类型。

```java

import riable;

import ;

public class GenericClassExample {

public static void main(String[] args) {

List stringList = ("Hello", "World");

TypeVariable[] typeParameters = ss().getTypeParameters();

for (TypeVariable typeParameter : typeParameters) {

n(e());

}

}

}

```

在上面的示例中,通过`ss().getTypeParameters()`方法获取到了`String`类型参数,并通过`getName()`方法打印出来。


本文标签: 类型 参数 泛型 方法