网站建设设计企业西安网站优化效果

pingmian/2026/1/23 23:47:50/文章来源:
网站建设设计企业,西安网站优化效果,装饰工程公司排名,wordpress充值卡插件前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、内省是什么、实现方式#xff1a; 内省#xff08;Introspector#xff09;是Java语言对Bean类属性、事件的一种缺省处理方法。…  前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 一、内省是什么、实现方式 内省Introspector是Java语言对Bean类属性、事件的一种缺省处理方法。 例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新的值。 通过getName/setName来访问name属性这就是默认的规则。 Java中提供了一套API用来访问某个属性的getter/setter方法通过这些API可以使你不需要了解这个规则 这些API存放于包java.beans中。Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新的值。通过getName/setName来访问name属性这就是默认的规则。Java中提供了一套API用来访问某个属性的getter/setter方法通过这些API可以使你不需要了解这个规则但你最好还是要搞清楚这些API存放于包java.beans中。一般的做法是通过类Introspector来获取某个对象的BeanInfo信息 然后通过BeanInfo来获取属性的描述器PropertyDescriptor 通过这个属性描述器就可以获取某个属性对应的getter/setter方法 然后我们就可以通过反射机制来调用这些方法。一般的做法是通过类Introspector来获取某个对象的BeanInfo信息然后通过BeanInfo来获取属性的描述器PropertyDescriptor通过这个属性描述器就可以获取某个属性对应的getter/setter方法然后我们就可以通过反射机制来调用这些方法。内省的解释 内省在wiki上的解释 在计算机科学中内省是指计算机程序在运行时Run time检查对象Object类型的一种能力通常也可以称作运行时类型检查。  不应该将内省和反射混淆。相对于内省反射更进一步是指计算机程序在运行时Run time可以访问、检测和修改它本身状态或行为的一种能力。 二、内省和反射区别区别 反射式在运行状态把Java类中的各种成分映射成相应的Java类可以动态的获取所有的属性以及动态调用任意一个方法强调的是运行状态。  内省机制是通过反射来实现的BeanInfo用来暴露一个bean的属性、方法和事件以后我们就可以操纵该JavaBean的属性 在Java内省中用到的基本上就是上述几个类。  通过BeanInfo这个类就可以获取到类中的方法和属性具体的可以参考JDK文档 Web 开发框架 Struts 中的 FormBean 就是通过内省机制来将表单中的数据映射到类的属性上 因此要求 FormBean 的每个属性要有 getter/setter 方法。 但也并不总是这样什么意思呢就是说对一个 Bean 类来讲 我可以没有属性但是只要有 getter/setter 方法中的其中一个 那么 Java 的内省机制就会认为存在一个属性比如类中有方法 setMobile 那么就认为存在一个 mobile 的属性。 将 Java 的反射以及内省应用到程序设计中去可以大大的提供程序的智能化和可扩展性。 有很多项目都是采取这两种技术来实现其核心功能例如我们前面提到的 Struts 还有用于处理 XML 文件的 Digester 项目其实应该说几乎所有的项目都或多或少的采用这两种技术。 在实际应用过程中二者要相互结合方能发挥真正的智能化以及高度可扩展性。 三、内省代码演示 1).内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法。例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。通过 getName/setName 来访问 name 属性这就是默认的规则。     Java 中提供了一套 API 用来访问某个属性的 getter/setter 方法通过这些 API 可以使你不需要了解这个规则但你最好还是要搞清楚这些 API 存放于包 java.beans 中。 2).直接通过属性的描述器java.beans.PropertyDescriptor类来访问属性的getter/setter 方法; 相关代码 public class Point {     private Integer x;     private Integer y;     public Point(Integer x, Integer y) {     super();     this.x  x;     this.y  y;     }     public Integer getX() {     return x;     }        public void setX(Integer x) {     this.x  x;     }     public Integer getY() {     return y;     }      public void setY(Integer y) {     this.y  y;     }     }     import java.beans.PropertyDescriptor;     import java.lang.reflect.Method;     public class Reflect {     public static void main(String[] args) throws Exception {     Point point  new Point(2, 5);     String proName  x;     getProperty(point, proName);     setProperty(point, proName);     }     private static void setProperty(Point point, String proName) throws Exception {     PropertyDescriptor proDescriptor  new PropertyDescriptor(proName, Point.class);     Method methodSetX  proDescriptor.getWriteMethod();     methodSetX.invoke(point, 8);     System.out.println(point.getX());// 8     }     private static void getProperty(Point point, String proName) throws Exception {     PropertyDescriptor proDescriptor  new PropertyDescriptor(proName, Point.class);     Method methodGetX  proDescriptor.getReadMethod();     Object objx  methodGetX.invoke(point);     System.out.println(objx);// 2     }     }       3).通过类 Introspector 来获取某个对象的 BeanInfo 信息然后通过 BeanInfo 来获取属性的描述器 PropertyDescriptor 通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法然后我们就可以通过反射机制来调用这些方法。 相关代码 把2中的getProperty()修改成如下形式 private static void getProperty(Point point, String proName) throws Exception {     BeanInfo beanInfo  Introspector.getBeanInfo(point.getClass());     PropertyDescriptor[] proDescriptors  beanInfo.getPropertyDescriptors();     for(PropertyDescriptor prop: proDescriptors){     if(prop.getName().equals(proName)){     Method methodGetx  prop.getReadMethod();     System.out.println(methodGetx.invoke(point));//8     break;     }     }     }    4).我们又通常把javabean的实例对象称之为值对象 Value Object,因为这些bean中通常只有一些信息字段和存储方法没有功能性方法。一个JavaBean类可以不当JavaBean用而当成普通类 用。JavaBean实际就是一种规范当一个类满足这个规范这个类就能被其它特定的类调用。一个类被当作javaBean使用时JavaBean的 属性是根据方法名推断出来的它根本看不到java类内部的成员变量(javabean的成员变量通常都是私有private的)。 5).除了反射用到的类需要引入外内省需要引入的类如下所示它们都属于java.beans包中的类自己写程序的时候也不能忘了引入相应的包或者类。 import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; 6).下面讲解一些开源的工具类Beanutils,需要额外下载的commons-beanutils.jar要使用它还必须导入commons-logging.jar包不然会出异常 相关代码一 public static void main(String[] args) throws Exception {     Point point  new Point(2, 5);     String proName  x;     BeanUtils.setProperty(point, proName, 8);     System.out.println(point.getX());// 8     System.out.println(BeanUtils.getProperty(point, proName));// 8     System.out.println(BeanUtils.getProperty(point, proName).getClass().getName());// java.lang.String     BeanUtils.setProperty(point, proName, 8);     System.out.println(BeanUtils.getProperty(point, proName).getClass().getName());// java.lang.String     }     //我们看到虽然属性x的类型是Integer但是我们设置的时候无论是Integer还是StringBeanUtils的内部都是当成String来处理的。   相关代码二 BeanUtils支持javabean属性的级联操作 public static void main(String[] args) throws Exception {     Point point  new Point(2, 5);//在point中加一个属性 private Date birth  new Date();并产生setter/getter方法     String proName  birth;     Date date new Date();     date.setTime(10000);     BeanUtils.setProperty(point, proName, date);     System.out.println(BeanUtils.getProperty(point, proName));     BeanUtils.setProperty(point, birth.time, 10000);     System.out.println(BeanUtils.getProperty(point, birth.time));//10000      }      //之所以可以 BeanUtils.setProperty(point, birth.time, 10000);这样写那是因为Date类中有getTime()和setTime()方法即Date类中相当于有time这个属性。    相关代码三 BeanUtils和PropertyUtils对比 public static void main(String[] args) throws Exception {     Point point  new Point(2, 5);     String proName  x;     BeanUtils.setProperty(point, proName, 8);     System.out.println(BeanUtils.getProperty(point, proName));//8     System.out.println(BeanUtils.getProperty(point, proName).getClass().getName());//java.lang.String     // PropertyUtils.setProperty(point, proName, 8);//exception:argument type mismatch     PropertyUtils.setProperty(point, proName, 8);     System.out.println(PropertyUtils.getProperty(point, proName));//8     System.out.println(PropertyUtils.getProperty(point, proName).getClass().getName());//java.lang.Integer      }      //BeanUtils它以字符串的形式对javabean进行转换而PropertyUtils是以原本的类型对javabean进行操作。如果类型不对就会有argument type mismatch异常。   6).理解了相应的原理那些现成的工具用起来就会更舒服如Beanutils与 PropertyUtils工具。这两个工具设置属性的时候一个主要区别是PropertyUtils.getPropety方法获得的属性值的类型为该 属性本来的类型而BeanUtils.getProperty则是将该属性的值转换成字符串后才返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

永久免费个人网站注册厦门网站建设模拟平台

近日,全球领先的物联网整体解决方案供应商移远通信宣布,其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势,该模组可满足CPE、家庭/企业网关、移动热点、高清视频…

有口碑的宁波网站建设信息流优化师招聘

确保代码完整性 在撸业务代码时候,经常面对的是接口的设计,在设计之初,我们必然要先想好入参,之后自然会有参数的校验过程,此时我们需要把可能的输入都想清楚,从而避免在程序中出现各种纰漏。但是难免面面…

商丘网站制作推广网站建设是指

通过上一篇文章的介绍,我们已经了解到了在CorelDRAW中如何自定义设置默认字体,相关阅读可参阅:CDR X8设置文字为默认字体。其实在CorelDRAW软件中给用户提供方式不止是一种,本文将介绍更多关于设置默认字体的方法。1. 打开CorelDR…

自己怎么用h5做网站国家信息公示系统

glibc提供了backtrace这个库函数,可以用来打印call stack。比如我们可以在程序中注册常见的一些signal,比如SIGSEGMENT, SIGPIPE,然后在这些信号的回调函数中,利用backtrace打印出call stack,这样debug就非常的方便。 …

网站开发系统设计苏州网站制作计划

文章目录 生成随机值生成随机数生成范围内随机数生成自定义类型随机值从一组字母数字字符创建随机密码从一组用户定义字符创建随机密码 总结 生成随机值 rust中官方并没有像以他语言一样,rust并没有官方并没有提供生成随机数的工具,所以我们要借助rand包…

电子政务和网站建设工作的总结seo关键词优化平台

测量矩阵的基本概念 在压缩感知(Compressed Sensing,CS)理论中,测量矩阵(也称为采样矩阵)是实现信号压缩采样的关键工具。它是一个通常为非方阵的矩阵,用于将信号从高维空间映射到低维空间&…

企业网站网上推广的途径网站开发有哪些类型

一、 数据规范化 1.1 数据规范化的概念 定义 数据规范化是数据库设计中的一种方法,通过组织表结构,减少数据冗余,提高数据一致性和降低更新异常的过程。这一过程确保数据库中的数据结构遵循一定的标准和规范,使得数据存储更加高…

网站建设所用软件手机网页游戏排行榜2021前十名

总览 Exchanger类在线程之间传递工作和回收使用的对象方面非常有效。 AFAIK,它也是最少使用的并发类之一。 但是,如果您不需要GC,则使用ArrayBlockingQueue进行日志记录会更简单。 交换器类 Exchanger类对于在两个线程之间来回传递数据很有…

网站搭建南京微信平台商城开发

背景:润乾报表 win上面的项目直接上传到linux 上,但预览&下载报表时乱码如果含有斜线的单元格或统计图的报表在网页上发布时,统计图或斜线单元格里的汉字会变成小方框,此时往往是服务器端操作系统的中文安装包没有装全&#x…

如何做网站规范网站升级中

前言 在很多第一人称或者第三人称射击游戏的单人模式中,玩家的乐趣往往来源于和各式各样的AI敌人的战斗。而战斗的爆发很多时候是因为这些AI在“看见”玩家后就会立即做出反应,比如开火、呼叫同伴、躲藏或者逃跑等。 所以这些AI到底是如何探测&#xff0…

为什么做不了自己的网站y-m-d WordPress

AttributeError: ‘set’ object has no attribute ‘items’ 出现这个问题,原因可能是定义的header有问题 正确如下: header{“key”:“value”} 如果是直接在请求数据中复制,很有可能会忽略键和值的冒号。

电商的网站开发订单返利功能湖南外贸网站建设

文章目录一、前置准备1. 技术选型2. 创建vue项目二、Rem 布局适配2.1. px转rem2.2. 设置 rem 基准值2.3. 配置vue.config.js2.4. 重置样式表2.5. 配置样式表2.6. 安装less2.7. 注册less2.8. 代码中使用三、vant安装/配置/测试3.1. 安装vant-ui3.2. 引入与注册3.3. vant测试四、…

网站开发平面设计师岗位要求关键词推广和定向推广

简介: K8s 取其精华去其糟粕,是我们程序员应该做的事情。 K8s设计模式 Kubernetes是一个具有普遍意义的容器编排工具,它提供了一套基于容器构建分布式系统的基础依赖,其意义等同于Linux在操作系统中的地位,可以认为是…

创业网站怎么做域名注册哪个好

正常情况下是没有手机上画电子围栏的,公共平台上我也没找到,所以走了一个歪点子,就是给地图添加点击事件,记录点的位置,在画到电子围栏上就是添加电子围栏了,如果只是显示电子围栏就简单了 一、多边形电子…

购物网站开发所用技术台州网站建设方案咨询

数组结构赋值 let [a,b][1,2] //交换两个变量的值 let[a,b][b,a] //扩展运算符的运用 let[a,...b][1,2,3]  //有默认值 右侧的参数等于undefined,默认值生效 let[a3,b][1,2] 对象结构赋值 let {a:a,b:b}{a:1,b:2};let {a,b}{a:1,b:2}let{a,...b}{a:1,b:2,c:3}

行政审批网站建设规范软件开发3000人天报价标准

这三点是webpack优化策略的一部分,具体解释如下: 优化正则匹配(Test):在webpack的配置中,test属性是一个正则表达式,用于匹配需要应用该loader的文件的扩展名。在您提供的代码中,te…

网站制作学校要的相城区公司网站建设

0:前言 🪧 什么情况需要数据库? 1 大规模的数据需要处理(比如上千上万的数据量)2 需要把数据信息存储起来,无论是本地还是服务上,而不是断电后数据信息就消失了。 如果不是上面的原因化,一般…

做网站会遇到哪些问题宁波网站建设i sp.net

通过编程实现PDF转PPT的功能,可以自动化转换过程,减少手动操作的工作量,并根据需要进行批量转换。将PDF文件转换为PPT文档后,可以利用PPT的丰富功能和动画效果,达到更好的演示效果。 在Java中,我们可以使用…

网站后端技术有哪些网站开发设计怎么找客户

Netty的ChannelFuture在Netty中的所有的I/O操作都是异步执行的,这就意味着任何一个I/O操作会立刻返回,不保证在调用结束的时候操作会执行完成。因此,会返回一个ChannelFuture的实例,通过这个实例可以获取当前I/O操作的状态。Chann…

信息管理系统网站开发教程江苏省建设招标网站

场景是这样,假设有一台设备会触发类型为Alarm的告警信号,并把信号添加到一个Queue结构中,每隔一段时间这个Queue会被遍历检查,其中的每个Alarm都会调用一个相应的处理方法。问题在于,检查机制是基于多线程的&#xff0…