- java.lang 包中的类
- java.lang - 首页
- java.lang - Boolean
- java.lang - Byte
- java.lang - Character
- java.lang - Character.Subset
- java.lang - Character.UnicodeBlock
- java.lang - Class
- java.lang - ClassLoader
- java.lang - Compiler
- java.lang - Double
- java.lang - Enum
- java.lang - Float
- java.lang - InheritableThreadLocal
- java.lang - Integer
- java.lang - Long
- java.lang - Math
- java.lang - Number
- java.lang - Object
- java.lang - Package
- java.lang - Process
- java.lang - ProcessBuilder
- java.lang - Runtime
- java.lang - RuntimePermission
- java.lang - SecurityManager
- java.lang - Short
- java.lang - StackTraceElement
- java.lang - StrictMath
- java.lang - String
- java.lang - StringBuffer
- java.lang - StringBuilder
- java.lang - System
- java.lang - Thread
- java.lang - ThreadGroup
- java.lang - ThreadLocal
- java.lang - Throwable
- java.lang - Void
- java.lang 包的其他内容
- java.lang - 接口
- java.lang - 错误
- java.lang - 异常
- java.lang 包的有用资源
- java.lang - 有用资源
- java.lang - 讨论
Java Class getGenericSuperClass() 方法
描述
Java Class getGenericSuperClass() 方法返回表示此 Class 表示的实体(类、接口、原始类型或 void)的直接超类的 Type。
声明
以下是 java.lang.Class.getGenericSuperclass() 方法的声明
public Type getGenericSuperclass()
参数
无
返回值
此方法返回此对象所表示的类的超类。
异常
GenericSignatureFormatError − 如果泛型类签名不符合 Java 虚拟机规范第 3 版中指定的格式。
TypeNotPresentException − 如果泛型超类引用不存在的类型声明。
MalformedParameterizedTypeException − 如果泛型超类引用任何原因都无法实例化的参数化类型。
获取类的泛型超类示例
以下示例演示了 java.lang.Class.getGenericSuperclass() 方法的用法。在此程序中,我们创建了一个扩展 ArrayList 的 IntegerClass 类。现在使用 getGenericSuperClass() 方法,检索并打印 IntegerClass 的泛型超类。
package com.tutorialspoint;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
public class ClassDemo {
public static void main(String args[]) {
// returns the superclass
Type t = IntegerClass.class.getGenericSuperclass();
System.out.println(t);
ParameterizedType p = (ParameterizedType)t;
System.out.println(p.getActualTypeArguments()[0]);
}
}
class IntegerClass extends ArrayList<Integer> {
public IntegerClass() {
// no argument constructor
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
java.util.ArrayList<java.lang.Integer> class java.lang.Integer
获取 ArrayList 的泛型超类示例
以下示例演示了 java.lang.Class.getGenericSuperclass() 方法的用法。在此程序中,我们使用了 ArrayList 的类。现在使用 getGenericSuperClass() 方法,检索并打印 ArrayList 的泛型超类。
package com.tutorialspoint;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
public class ClassDemo {
public static void main(String args[]) {
// returns the superclass
Type t = ArrayList.class.getGenericSuperclass();
System.out.println(t);
ParameterizedType p = (ParameterizedType)t;
System.out.println(p.getActualTypeArguments()[0]);
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
java.util.AbstractList<E> E
获取 Thread 的泛型超类示例
以下示例演示了 java.lang.Class.getGenericSuperclass() 方法的用法。在此程序中,我们使用了 Thread 的类。现在使用 getGenericSuperClass() 方法,检索并打印 Thread 的泛型超类。
package com.tutorialspoint;
import java.lang.reflect.Type;
public class ClassDemo {
public static void main(String args[]) {
// returns the superclass
Type t = Thread.class.getGenericSuperclass();
System.out.println(t);
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
class java.lang.Object