首页 > 编程知识 正文

java反射使用场景,java反射使用

时间:2023-05-05 06:51:22 阅读:41038 作者:2376

每个Method中的对象都对应于特定的基本方法。 获取Method对象后,程序可以使用Method中的invoke方法执行基本方法。

objectinvoke(objectobj,Object . args ) :obj表示调用基本方法的对象,后面的args表示传递的实际参数。

如果基本方法是静态的,则可以忽略指定的obj参数。 此参数可以为null。 想想为什么。

如果基本方法所需的参数数为0,则提供的args数组的长度可以为0或null。

不写、null或new Object[]{}

如果基本方法返回数组类型,则invoke方法返回基本方法的返回类型,而不是基本方法的值

打包June reflect 624;

import java.lang.reflect.Method;

class Dept{

公共字符串显示(字符串名称)//以反射方式调用常规方法

return name ',你好!' ;

}

通过private void privateshow () /反射实现对私有化方法的调用

system.out.println(privateshow );

}

公共静态语音静态(

system.out.println(staticshow );

}

}

公共类invoke demo9{

publicstaticvoidmain (字符串[ ] args ) throws Exception { )。

/*传统方式:

String name=new Dept ().show ) ' ykdwx );

system.out.println(name; */

//*

* methodgetmethod (字符串名称,类. parameter types ) ) ) ) )。

返回反映此类对象所表示的类或接口的指定公共成员方法的Method对象。

name-方法名称

参数类型-参数列表

*/

//想通过反射调用Dept的方法

Class c=Dept.class;

methodm=c.getmethod(show,String.class );

objecto=m.invoke(c.newinstance )、' ykdwx );

系统. out.println (o;

//私有化的方法

m=c.getdeclaredmethod (privateshow ); //无参与方法

m .设置可访问(true;

o=m.invoke(c.newinstance ) );

//调用静态方法

m=c.getmethod(staticshow );

m.invoke(null ); //staticshow是静态方法,在此为空,因为不需要创建对象

}

}

打印

ykdwx,你好!

隐私保护

staticshow

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。