首页 > 编程知识 正文

通俗理解java反射,java反射

时间:2023-05-04 19:21:44 阅读:15419 作者:1254

当类加载器将类加载到jvm中时,jvm将为每个类创建元数据对象[class]。 此元数据对象[class]记录类的所有信息。 java语言允许通过元数据对象动态创建对象实例。 此机制称为java反射机制,它基本上在所有框架的基础上使用反射机制、spring和mybb

1 .如何获取类的元数据对象(Class )? 当前有用户类

package com.niu.demo; 公共类用户{私有用户名称; 私有字符串密码; public String getName () { return name; }公共语音集名称(字符串名称) { this.name=name; }公共字符串获取密码() { return password; } publicvoidsetpassword (string password ) { this.password=password; 获取用户的元数据对象(Class )方法

public class main2{ publicstaticvoidmain (string [ ] args ) { ClassUser aClass1=User.class; //1,类名. class Class? a class2=class.forname (com.Niu.demo.user ); //2,类的完整路径名User user=new User (; Class? extendsuseraclass=user.getclass (; //3,对象引用. getClass (方式)2.如何从类的元数据对象(Class )创建对象? 采用获取Class对象的第一种方式

ClassUser aClass1=User.class; //1,类名. class useruser=aclass1. new instance (; 现在,通过反射创建了类

我可以用Class对象做什么

可以从元数据Class对象中获取有关对象的所有信息,包括方法、属性、父类、接口和构造函数。

3.1属性包含public class main2(publicstaticvoidmain (字符串[ ] args ) throwsexception(/1,第一种方法用户用户=新用户) ); user.setName (美丽的蝴蝶); system.out.println (user.getname ); //在反射中为属性赋值属性名称Field field=user.getClass ().getdeclaredfield ) ' name ); field.set accessible (真; Field.set(user,'朴素兔子'); system.out.println (user.getname ); //2、第二种方式useruser1=user.class.new instance (; user1.setName ('浅砖头'); system.out.println (user1. getname ); }输出

3.2将以下方法添加到反射调用方法User中

publicbooleanpasswordcheck (字符串密码) if ) password==null|(password.length )3) system.out.println return ff } else { system.out.println (密码isok ); 返回真; }调用测试

publicstaticvoidmain (字符串[ ] args ) Throwsexception ) useruser=newuser ); //传递的方法名称和参数类型methodpasswordcheck=user.getclass (.getdeclaredmethod ) ' passwordcheck ',String.class ); 对象invoke1=password check.invoke (user,' 12 ); system.out.println(invoke1; object invoke2=password check.invoke (user,' 123 ); system.out.println(invoke2; }输出

4、如何在框架中使用反射在tomcat中使用web.xml

servlet servlet-namehelloservlet/servlet-name servlet-class servlet.hello servlet/servlet-class/servlet-mervlet sest hello servlet/URL-pattern/servlet-mapping其中,在servlet-class中配置的完整类路径然后通过class.fapping

spring的ioc mybatis的映射器等。 正在使用反射

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