Tuesday 7 November 2017

How to get the generic return type of the method using Java Reflection | Reflection in java


Click here to watch in Youtube
https://www.youtube.com/watch?v=xnh_lccCWOg&list=UUhwKlOVR041tngjerWxVccw

Display.java
import java.util.Arrays;
import java.util.List;

public class Display
{

    protected List<String> nameList = Arrays.asList("Peter","Juli","Dave");

    public List<String> getNameList()
    {
        return this.nameList;
    }
}
ReflectionDemo.java
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * How to get Generic return Type of the method
 */
public class ReflectionDemo
{
    public static void main(String[] args)
    {
        try
        {
            Class<Display> classObj = Display.class;
            Method method = classObj.getMethod("getNameList", null);
            Type type = method.getGenericReturnType();
            System.out.println("type = "+type);

            if (type instanceof ParameterizedType)
            {
                ParameterizedType parameterizedType = (ParameterizedType) type;
                Type[] typeArguments = parameterizedType.getActualTypeArguments();
                for (Type typeArgument : typeArguments)
                {
                    Class typeArgClass = (Class) typeArgument;
                    System.out.println("typeArgClass = " + typeArgClass);
                    System.out.println("typeArgClass Name = " + typeArgClass.getName());
                }
            }
        }
        catch (NoSuchMethodException | SecurityException e)
        {
            e.printStackTrace();
        }

    }

}
Output
type = java.util.List<java.lang.String>
typeArgClass = class java.lang.String
typeArgClass Name = java.lang.String

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/ReflectionDemo_genericreturntype_method.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ReflectionDemo_genericreturntype_method

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/7b0b4fbacd011a10dc23b42c4acc3ae6988db782/BasicJava/ReflectionDemo_genericreturntype_method/?at=master

See also:


  • All JavaEE Videos Playlist
  • All JavaEE Videos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • 1 comment:

    1. instead of string if we use anyother class inside can we get methods of that class ???

      ReplyDelete