Mega Code Archive

 
Categories / Java Tutorial / Reflection
 

Demonstrates how to get simple method information

/*  *     file: MethodInfoDemo.java  *  package: oreilly.hcj.reflection  *  * This software is granted under the terms of the Common Public License,  * CPL, which may be found at the following URL:  * http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm  *  * Copyright(c) 2003-2005 by the authors indicated in the @author tags.  * All Rights are Reserved by the various authors.  *  ########## DO NOT EDIT ABOVE THIS LINE ########## */ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /**  * Demonstrates how to get simple method information.  *   * @author <a href=mailto:kraythe@arcor.de>Robert Simmons jr. (kraythe)</a>  * @version $Revision: 1.3 $  */ public class MethodInfoDemo {   /**    * __UNDOCUMENTED__    *     * @param obj    *          __UNDOCUMENTED__    *     * @throws IllegalAccessException    *           __UNDOCUMENTED__    * @throws InvocationTargetException    *           __UNDOCUMENTED__    */   public static void emptyStrings(final Object obj) throws IllegalAccessException,       InvocationTargetException {     final String PREFIX = "set"; //$NON-NLS-1$     Method[] methods = obj.getClass().getMethods();     for (int idx = 0; idx < methods.length; idx++) {       if (methods[idx].getName().startsWith(PREFIX)) {         if (methods[idx].getParameterTypes()[0] == String.class) {           methods[idx].invoke(obj, new Object[] { new String() });         }       }     }   }   /**    * Demo method.    *     * @param args    *          Command line arguments.    */   public static void main(final String[] args) {     String s = "";     printMethodInfo(s);     try {       emptyStrings(s);     } catch (final Exception ex) {       ex.printStackTrace();     }   }   /**    * __UNDOCUMENTED__    *     * @param obj    *          __UNDOCUMENTED__    */   public static void printMethodInfo(final Object obj) {     Class type = obj.getClass();     final Method[] methods = type.getMethods();     for (int idx = 0; idx < methods.length; idx++) {       System.out.println(methods[idx]);     }   } } /* ########## End of File ########## */