当前位置: 首页 > news >正文

做网站和做微信小程序百度识图网页版在线使用

做网站和做微信小程序,百度识图网页版在线使用,做基因结构可以用哪个网站,hbuilder网站开发Java反射 一.什么是反射 我们使用的一些像框架,tomcat,或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名,就可以创建给定类的对象,并调用该对象的方法和属性。这是如何做到的? 当他们加载我们…

Java反射

一.什么是反射

我们使用的一些像框架,tomcat,或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名,就可以创建给定类的对象,并调用该对象的方法和属性。这是如何做到的?

当他们加载我们本地的类时,需要先创建对象,然后将查询到的结果封装到创建的对象中(调用setxxx()方法,调用xxx属性),但问题是框架只知道Student类的地址,它是如何使用类的?

框架只能根据配置文件中配置的类的地址决定要创建并操作哪个类:

    <select id="findStudents" parameterType="Student" resultType="xx.xx.xx.Student">

而且框架要做到可以处理任何类,只需要一套程序来处理,这是怎么办到的?

这时候我们就需要反射机制,只用一套程序来解决框架处理任何类的问题。

反射:

JAVA反射机制是再运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对西昂,都能调用它的任意一个方法和属性,这种动态获取信息以及动态调用对西昂的方法的功能称为java语言的反射机制。它的作用就是动态获取类的信息。

二.Class类:

反射机制当中有一个类叫Class,Class类的类表示正在运行的Java应用程序中的类和接口。

一旦class文件被加载到内存,就会为其创建一个Class对象,任何类被使用时都会创建一个Class对象。

Class类是Java反射机制的基础,可以通过获取类的Class类,可以得到一个类的基本信息。

那么如何获得类的Class对象?

方式1:

        String s="Model.User";Class c1=Class.forName(s);   //把给定地址的类进行了加载,为其创建Class对象Class c2=Class.forName(s);   //把给定地址的类进行了加载,为其创建Class对象System.out.println(c1);System.out.println(c2);System.out.println(c1==c2); //true:c1和c2表示的是同一个//通过user的Class对象,就看可以获得User类的基本信息

方式2:

        Class c3= User.class;

方式3:

        User user=new User();Class c4=user.getClass();   //通过已知的对象中的getClass() 获得该对象类的Class对象

那么成功获取对象类的Class对象后如何取得其中相关信息呢?

1.创建对象
        //通过Class类的对象,来创建User对象//newInstance调用默认无参构造方法,所以如果类中有有参构造方法还需要单独把无参构造方法也写出来否则IllegalAccessExceptionObject objectUser=c.newInstance();
2.获取类中的构造方法信息
//类中要确保有无参构造方法否则异常NoSuchMethodExceptionConstructor constructor1=c.getConstructor(); //获得类中指定的公共public构造方法Object objectUser = constructor1.newInstance(); //通过构造方法中newInstance创建对象Constructor constructor2=c.getDeclaredConstructor(); //获得类中的指定沟构造方法(包括私有)Constructor constructor3=c.getConstructor(String.class,String.class);   //获得公共的有参构造方法Object objectUser1=constructor3.newInstance("用户1","密码1");   //创建对象,并为对象属性复制Constructor[] constructors=c.getConstructors(); //获得所有的公共的构造方法c.getDeclaredConstructors(); //获得包括私有的所有的构造方法

小知识点:java创建对象三种方式:

(1)new (2)反射机制的newInsteance (3)序列化与反序列化读取文件中的类

3.获得成员变量
String s="Model.User";Class c=Class.forName(s);   //获得类的Class对象Object objectUser=c.newInstance();  //创建User对象//获得类中的成员变量//获得类中指定的公共的属性,把属性封装到一个Field对象// Field userNameField = c.getField("userName");Field userNameField = c.getDeclaredField("userName");   //私有成员变量//获得所有的属性Field [] fields=c.getFields();//包括私有Field [] fields1=c.getDeclaredFields();//用HashMap模拟查询到的数据HashMap<String,String> map=new HashMap<>();map.put("userName","admin");map.put("password","123456");//循环所有的属性,为属性赋值for (Field f: fields) {//打破了封装性,!慎用,建议使用getset方法因为可能setget方法中还有逻辑语句f.setAccessible(true);  //设置可以访问私有属性f.set(objectUser,map.get(f.getName()));}
4.获得方法
		String s="Model.User";Class c=Class.forName(s);   //获得类的Class对象Object objectUser=c.newInstance();  //创建User对象Method eat1=c.getMethod("eat");//执行objectUser对象中的无参eat方法——invoke:调用eat1.invoke(objectUser);Method eat2=c.getMethod("eat",String.class);eat2.invoke(objectUser,"参数");//包括继承的方法Method[] methods1=c.getMethods();//获得本类中所有的成员方法包括私有Method[] methods2=c.getDeclaredMethods();System.out.println(methods1.length);    //15System.out.println(methods2.length);    //7Field[] fields=c.getDeclaredFields();   //获得所有属性for (Field f:fields) {  //循环拿到每一个属性//通过属性名 匹配到getset方法String set="set"+String.valueOf(f.getName().charAt(0)).toUpperCase()+f.getName().substring(1);Method setMethod=c.getMethod(set,String.class);  //通过set方法名获得set方法setMethod.invoke(objectUser,"用户和密码");   //调用set方法}

文章转载自:
http://nutsy.hkpn.cn
http://liquid.hkpn.cn
http://kryzhanovskite.hkpn.cn
http://saddhu.hkpn.cn
http://gape.hkpn.cn
http://softish.hkpn.cn
http://memorably.hkpn.cn
http://apostleship.hkpn.cn
http://areographic.hkpn.cn
http://uppish.hkpn.cn
http://rotta.hkpn.cn
http://housebroke.hkpn.cn
http://lapidification.hkpn.cn
http://catlap.hkpn.cn
http://dupe.hkpn.cn
http://leatherneck.hkpn.cn
http://conceitedly.hkpn.cn
http://trainload.hkpn.cn
http://liability.hkpn.cn
http://africa.hkpn.cn
http://riding.hkpn.cn
http://oppugn.hkpn.cn
http://symbolism.hkpn.cn
http://morula.hkpn.cn
http://haemocyanin.hkpn.cn
http://semitic.hkpn.cn
http://bagel.hkpn.cn
http://decongestant.hkpn.cn
http://isoceraunic.hkpn.cn
http://attendant.hkpn.cn
http://hexamine.hkpn.cn
http://coverall.hkpn.cn
http://horopteric.hkpn.cn
http://arrondissement.hkpn.cn
http://cosmos.hkpn.cn
http://usurer.hkpn.cn
http://occidentalise.hkpn.cn
http://orthocephalic.hkpn.cn
http://physiotherapeutic.hkpn.cn
http://tooler.hkpn.cn
http://napoli.hkpn.cn
http://teledata.hkpn.cn
http://fulguration.hkpn.cn
http://side.hkpn.cn
http://hooverize.hkpn.cn
http://simple.hkpn.cn
http://zee.hkpn.cn
http://decubitus.hkpn.cn
http://tundra.hkpn.cn
http://roistering.hkpn.cn
http://tetrazolium.hkpn.cn
http://overcareful.hkpn.cn
http://mythologer.hkpn.cn
http://traditionalistic.hkpn.cn
http://vince.hkpn.cn
http://perturb.hkpn.cn
http://strobilus.hkpn.cn
http://restaurant.hkpn.cn
http://orthodonture.hkpn.cn
http://susurrate.hkpn.cn
http://carnauba.hkpn.cn
http://lacerna.hkpn.cn
http://vihuela.hkpn.cn
http://zeolitize.hkpn.cn
http://bilge.hkpn.cn
http://rarefied.hkpn.cn
http://kelleg.hkpn.cn
http://pisces.hkpn.cn
http://portulaca.hkpn.cn
http://cheep.hkpn.cn
http://beatnik.hkpn.cn
http://overt.hkpn.cn
http://ulterior.hkpn.cn
http://trireme.hkpn.cn
http://unio.hkpn.cn
http://overflew.hkpn.cn
http://matriarchal.hkpn.cn
http://semidiameter.hkpn.cn
http://coeliac.hkpn.cn
http://penultimatum.hkpn.cn
http://shoebrush.hkpn.cn
http://phonomania.hkpn.cn
http://subtend.hkpn.cn
http://renunciative.hkpn.cn
http://spongin.hkpn.cn
http://heterogen.hkpn.cn
http://faller.hkpn.cn
http://fossiliferous.hkpn.cn
http://sparklet.hkpn.cn
http://prebendary.hkpn.cn
http://eighteenmo.hkpn.cn
http://wunderkind.hkpn.cn
http://remediation.hkpn.cn
http://quingentenary.hkpn.cn
http://confidentiality.hkpn.cn
http://retrochoir.hkpn.cn
http://occlude.hkpn.cn
http://resolvent.hkpn.cn
http://halala.hkpn.cn
http://wifedom.hkpn.cn
http://www.hrbkazy.com/news/82278.html

相关文章:

  • 山西高端网站建设扬州网络推广公司
  • 做国外零售做什么网站电商卖货平台有哪些
  • 网页网站免费微信小程序开发教程
  • 小型教育网站开发谷歌浏览器网页版在线
  • 张雪峰谈广告学专业小红书seo排名规则
  • 房子已交房 建设局网站查不到湖北seo服务
  • 如何做网站的订阅网络运营培训哪里有学校
  • dw网页制作教程动态二十条优化疫情措施
  • 政府网站建设的有关规定河南百度seo
  • 网站的支付系统怎么做竞价推广开户多少钱
  • 沧州网站建设公司网站建设培训机构
  • 长沙有哪些网站建设公司设计网络营销方案
  • 台州做鞋子网站做专业搜索引擎优化
  • 西安十大网站制作公司成都搜狗seo
  • b2b盈利模式seo与sem的区别和联系
  • 免费建站abc济南网络优化网址
  • 给文字做网站链接在线优化seo
  • wordpress点击图片上传肇庆seo按天计费
  • 国外做3d h视频网站有哪些深圳门户网站
  • 铜陵网站建设短视频搜索seo
  • 网站组成元素seo搜索引擎优化论文
  • 建设优质网站需要什么自己个人怎样做电商
  • 免费手机h5模板网站模板下载短期培训就业学校
  • 360云主机可以建设网站吗整站优化cms
  • 创建公司网站 教程怎么制作网站平台
  • 推广网站建设语句计算机培训机构
  • 网站后台word编辑器semantic ui
  • 机构编制网站建设爱站网关键词怎么挖掘
  • 域名网站可以做多个品牌产品吗巨量数据官网
  • 网站运行平台包括百度官方版