How to use reflection API to read class/methods/fields info?

How to use reflection API to read class/methods/fields info?

Postby Kishan » Tue Feb 05, 2013 7:44 am

How to use reflection API to read class/methods/fields/constructors information?
Kishan
 
Posts: 191
Joined: Tue Jan 29, 2013 4:21 am

Re: How to use reflection API to read class/methods/fields i

Postby Kishan » Thu Feb 07, 2013 5:51 am

Code: Select all
package javatrng.examples.reflection;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectionExample {
   
   private int age;
   private String name;
   private final String color = "BLUE";

   public ReflectionExample() {
      System.out.println("zero arg constructor");
   }
   
   public ReflectionExample(int i) {
      System.out.println("one arg constructor");
   }
   
   public void foo() {
      System.out.println("This is foo() method");
   }
   
   public static void fooStatic() {
      System.out.println("This is fooStatic() method");
   }
   
   public static void main(String[] args) {
      
      Class<ReflectionExample> clz = ReflectionExample.class;
      
      System.out.println("---------- Variables ------------");
      for(Field f : clz.getDeclaredFields()) {
         if(Modifier.isFinal(f.getModifiers())) {
            System.out.print("final ");
         }
         if(Modifier.isPrivate(f.getModifiers())) {
            System.out.print("private ");
         }
         System.out.println(f.getName());
      }
      System.out.println("---------- Constructors ------------");
      for(Constructor<?> c : clz.getDeclaredConstructors()) {
         if(Modifier.isProtected(c.getModifiers())) {
            System.out.print("protected ");
         } else if(Modifier.isPublic(c.getModifiers())) {
            System.out.print("public ");
         }
         System.out.println(c.getName());
      }
      System.out.println("---------- Methods ------------");
      for(Method f : clz.getDeclaredMethods()) {
         if(Modifier.isStatic(f.getModifiers())) {
            System.out.print("static ");
         }
         if(Modifier.isAbstract(f.getModifiers())) {
            System.out.print("abstract ");
         }
         if(Modifier.isPublic(f.getModifiers())) {
            System.out.print("public ");
         }
         System.out.println(f.getName() + "param count: " + f.getParameterTypes().length);
      }
      
   }

}
Kishan
 
Posts: 191
Joined: Tue Jan 29, 2013 4:21 am


Return to Core Java

Who is online

Users browsing this forum: No registered users and 1 guest

cron