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