巧合?另一个帖子有问取的对象中所有属性的操作,顺便贴一下://创建一个日历对象
java.util.Calendar clndr = java.util.Calendar.getInstance();
// 获得日历对象的类
Class cls = clndr.getClass();
//显示类名
System.out.println(cls.getName());//获得类中所有public属性
java.lang.reflect.Field[] flds = cls.getFields();if ( flds != null )
{
// 遍历属性数组,显示属性名和值
for ( int i = 0; i < flds.length; i++ )
{
System.out.println(flds[i].getName() + " - " + flds[i].get(clndr));
}
}
java.util.Calendar clndr = java.util.Calendar.getInstance();
// 获得日历对象的类
Class cls = clndr.getClass();
//显示类名
System.out.println(cls.getName());//获得类中所有public属性
java.lang.reflect.Field[] flds = cls.getFields();if ( flds != null )
{
// 遍历属性数组,显示属性名和值
for ( int i = 0; i < flds.length; i++ )
{
System.out.println(flds[i].getName() + " - " + flds[i].get(clndr));
}
}
Class cls = clndr.getClass();// 获得所有public方法
java.lang.reflect.Method[] mtds = cls.getMethods();if ( mtds != null )
{
for ( int i = 0; i < mtds.length; i++ )
{
System.out.print(mtds[i].getName() + "(");
// 获得方法形式参数
Class[] pts = mtds[i].getParameterTypes();
if ( pts != null && pts.length > 0 )
{
String pt = "";
for ( int j = 0; j < pts.length; j++ )
{
pt += pts[j].getName() + ", ";
}
pt = pt.substring(0, pt.lastIndexOf(","));
System.out.print(pt);
}
System.out.print(") ");
// 获得方法异常
Class[] ets = mtds[i].getExceptionTypes();
if ( ets != null && ets.length > 0 )
{
String et = "throws ";
for ( int j = 0; j < ets.length; j++ )
{
et += ets[j].getName() + ", ";
}
et = et.substring(0, et.lastIndexOf(","));
System.out.print(et);
}
System.out.println();
}
}
int get(int field)
为例:java.util.Calendar clndr = java.util.Calendar.getInstance();
Class cls = clndr.getClass();java.lang.reflect.Method mtd_get = cls.getMethod("get", new Class[]{int.class});System.out.println(mtd_get.invoke(clndr, new Object[]{new Integer(Calendar.YEAR)} ));