title: getTypeParameters returns a null TypeVariable array
body: <p>I am writing a program that displays the methods inside a Class along with it's access modifier, return type and parameters.</p>
  
  <p>Here's my code</p>
  
  <pre><code>import java.lang.reflect.*;
  class RefTest1{
  
      public static void main(String[] args) throws Exception{
          Test obj = new Test();      
          Class&lt;?&gt; c = obj.getClass();
  
          System.out.printf("%n%s fields :-%n", obj.getClass());
  
          Field[] fields = c.getDeclaredFields();
  
          for(Field f : fields){
              f.setAccessible(true);
              int m = f.getModifiers();
  
              if(Modifier.isStatic(m)){
                  System.out.printf("%s is static variable and its value is %s%n", f.getName(), f.get(obj));
              }else if(Modifier.isPublic(m)){
                  System.out.printf("%s is public variable and its value is %s%n", f.getName(), f.get(obj));
              }else if(Modifier.isPrivate(m)){
                  System.out.printf("%s is private variable and its value is %s%n", f.getName(), f.get(obj));
              }else if(Modifier.isProtected(m)){
                  System.out.printf("%s is protected variable and its value is %s%n", f.getName(), f.get(obj));
              }
          }
          System.out.printf("%n%s methods :-%n", obj.getClass());     
  
          Method[] methods = c.getDeclaredMethods();
  
          for(Method meth : methods){
              int m = meth.getModifiers();
              meth.setAccessible(true);
              if(Modifier.isStatic(m)){
                  System.out.printf("%s is static method%n", meth.getName());
              }else if(Modifier.isPublic(m)){
                  System.out.printf("%s is public method%n", meth.getName());
              }else if(Modifier.isPrivate(m)){
                  System.out.printf("%s is private method%n", meth.getName());
              }else if(Modifier.isProtected(m)){
                  System.out.printf("%s is protected method%n", meth.getName());
              }
  
              System.out.printf("%nReturn Type :- %s%n", meth.getReturnType());
              System.out.printf("%nParameters:-%n");
              TypeVariable[] parameters = meth.getTypeParameters();
  
              for(TypeVariable param : parameters){
                  System.out.printf("%s", param.getName());
              }
  
  
          }
          System.out.println();
  
      }
  
  }
  </code></pre>
  
  <p>Test.java</p>
  
  <pre><code>class Test{
  
      private int x;
      public double y;
      protected String z;
      static long a;
  
      public Test(){
          x = 10;
          y = 20;
          z = "Hello";
          a = 15L;
  
      }
  
      public void Print(String a){
          a = a;
          System.out.println("Executing Print function.");
      }
  
      private void hidden(double b){
          b = b; 
          //private function
      }
  }
  </code></pre>
  
  <p>Every thing is working fine but I don't understand why I get a blank array of <code>TypeVariable</code> at line <code>TypeVariable[] parameters = meth.getTypeParameters();</code></p>
  
  <p>Can some one point me in a right direction?</p>
  
  <p>Thanks.</p>