⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accesspersonmethods.java

📁 此为java开发方面的算法
💻 JAVA
字号:
/****************************************************
 * 参考书籍:<<Java面向对象编程>>                   *
 * 技术支持网址:www.javathinker.org                *
 ***************************************************/

package reflect.sample;

import java.lang.reflect.*;

public class AccessPersonMethods
{
    public static void main(String[] args)
    {
        try
        {
Person person=new Person("linda",10);

invokeAllMethods(person);
/*
Class personClass=person.getClass();
Class[] parameterClass={int.class};

Method setAgeMethod=personClass.getMethod("setAge",parameterClass);
parameterClass=new Class[0];
Method getAgeMethod=personClass.getMethod("getAge",parameterClass);
//设定person的年龄
Object params[]=new Object[1];
params[1]=new Integer(12);
setAgeMethod.invoke(person, params);
//获得person的年龄
Object ageObject=getAgeMethod.invoke(person, new Object[0]);
int age=((Integer)ageObject).intValue();
System.out.print(age);
*/

        }
        catch (Exception exc)
        {
            exc.printStackTrace();
        }
    }

static public void invokeAllMethods(Object o) throws Exception{
  Class c=o.getClass();
  Method[] ms=c.getMethods();

  for(int i=0;i<ms.length;i++){
    System.out.println(ms[i].getName());

    Class[] paraTypes=  ms[i].getParameterTypes();
    Object[] paras=createParameter(paraTypes);

    try{
    ms[i].invoke(o, paras);  //o.setImage(12);
    }catch(Exception e){}
  }

}


static private Object[] createParameter(Class[] paraTypes)throws Exception{
  Object[] result=new Object[paraTypes.length];

  for(int i=0;i<paraTypes.length;i++){
    result[i]=paraTypes[i].newInstance();

  }

  return result;
}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -