Java-lang-class-getgenericsuperclass
提供:Dev Guides
Java.lang.Class.getGenericSuperClass()メソッド
説明
- java.lang.Class.getGenericSuperClass()*は、このクラスによって表されるエンティティ(クラス、インターフェイス、プリミティブ型、またはvoid)の直接のスーパークラスを表すTypeを返します。
宣言
以下は* java.lang.Class.getGenericSuperClass()*メソッドの宣言です。
public Type getGenericSuperclass()
パラメーター
NA
戻り値
このメソッドは、このオブジェクトによって表されるクラスのスーパークラスを返します。
例外
- GenericSignatureFormatError -ジェネリッククラスの署名がJava Virtual Machine Specification、第3版で指定された形式に準拠していない場合。
- TypeNotPresentException -ジェネリックスーパークラスが存在しない型宣言を参照している場合。
- MalformedParameterizedTypeException -ジェネリックスーパークラスが、何らかの理由でインスタンス化できないパラメーター化された型を参照している場合。
例
次の例は、java.lang.Class.getGenericSuperClass()メソッドの使用方法を示しています。
package com.finddevguides;
import java.lang.reflect.*;
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