Java Class getGenericSuperClass() Method



Description

The Java Class getGenericSuperClass() method returns the Type representing the direct superclass of the entity (class, interface, primitive type or void) represented by this Class.

Declaration

Following is the declaration for java.lang.Class.getGenericSuperClass() method

public Type getGenericSuperclass()

Parameters

NA

Return Value

This method returns the superclass of the class represented by this object.

Exception

  • GenericSignatureFormatError − If the generic class signature does not conform to the format specified in the Java Virtual Machine Specification, 3rd edition.

  • TypeNotPresentException − If the generic superclass refers to a non-existent type declaration .

  • MalformedParameterizedTypeException − If the generic superclass refers to a parameterized type that cannot be instantiated for any reason.

Getting Generic Super Class of a Class Example

The following example shows the usage of java.lang.Class.getGenericSuperclass() method. In this program, we've created a class IntegerClass which extends ArrayList. Now using getGenericSuperClass() method, the generic superclass of IntegerClass is retrieved and printed.

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
   }
}

Output

Let us compile and run the above program, this will produce the following result −

java.util.ArrayList<java.lang.Integer>
class java.lang.Integer

Getting Generic Super Class of an ArrayList Example

The following example shows the usage of java.lang.Class.getGenericSuperclass() method. In this program, we've used class of ArrayList. Now using getGenericSuperClass() method, the generic superclass of ArrayList is retrieved and printed.

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]);
   }
}

Output

Let us compile and run the above program, this will produce the following result −

java.util.AbstractList<E>
E

Getting Generic Super Class of an Thread Example

The following example shows the usage of java.lang.Class.getGenericSuperclass() method. In this program, we've used class of Thread. Now using getGenericSuperClass() method, the generic superclass of Thread is retrieved and printed.

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); 
   }
}

Output

Let us compile and run the above program, this will produce the following result −

class java.lang.Object
java_lang_class.htm
Advertisements