/*
* file: MethodUsageDemo.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 ########## */
//package oreilly.hcj.reflection;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.util.Locale;
/**
* Demonstrates dynamic usage of methods.
*
* @author <a href=mailto:kraythe@arcor.de>Robert Simmons jr. (kraythe)</a>
* @version $Revision: 1.3 $
*/
public class MethodUsageDemo {
/** Date formatter to be used. */
static final DateFormat DATE_FORMATTER = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
/**
* Ouput the values of the "get" methods.
*
* @param obj
* The object to output.
*
* @throws InvocationTargetException
* If an error occurs in calling the get methods.
* @throws IllegalAccessException
* If the security manager rejects access.
*/
public static final void outputValues(final Object obj) throws InvocationTargetException,
IllegalAccessException {
final String PREFIX = "get"; //$NON-NLS-1$
System.out.println("--- Accessing Get Methods ---");
Method[] meths = obj.getClass().getMethods();
for (int idx = 0; idx < meths.length; idx++) {
if (meths[idx].getName().startsWith(PREFIX)) {
if (meths[idx].getParameterTypes().length == 0) {
System.out.print(meths[idx].getName() + " = "); //$NON-NLS-1$
System.out.println(meths[idx].invoke(obj, null));
}
}
}
}
/**
* Main method.
*
* @param args
* Command line arguments.
*
* @throws RuntimeException
* If an unforseen error occurs.
*/
public static void main(final String[] args) {
try {
// person.setBirthDate(DATE_FORMATTER.parse("01/12/1971"));
// Output the object.
outputValues(new String());
} catch (final Exception ex) {
throw new RuntimeException(ex);
}
}
}
/* ########## End of File ########## */
|