Java内省技术

-------<a href="http://www.itheima.com/"">android培训</a>、<a
href="http://www.itheima.com/" ">java培训</a>期待与您交流!----------

JavaBean类:

在Java中有一种特殊的类,它用于程序中两个模块的信息交换。它的特点是将成员变量私有化。用getter和setter方法获取设置其成员变量的值。

一个简单的JavaBean类。

public class dog{

private String name=“旺财”;

private int age=2;

public void setName(String name){

this.name=name

}

Public void setAge(int age){

this.age=age;

}

Public String getName()

return name;

}

Public String getAge()

return age

}

当我们用反射技术去获取或设置JavaBean类的字段时,一般方式如下面代码:

很显然这做很繁琐麻烦。要知道在开发中会有很多的JavaBean类。如果都用这种原始的方式,oh my god.所以sun公司提供了一套对于JavaBean类反射的API来简化我们的操作。使用这套API来操作JavaBean类,就叫做內省。

以下代码来演示根据sun公司提供的API內省步骤。

方法一:

方法二:

由于程序猿觉得sun公司提供的API进行內省操作还是觉得麻烦(不要怪程序猿们太懒,懒也是推动世界进步的一种动力嘛)一个开源组织就又开发了一套API,来更简便的进行內省操作,以下代码演示用这种API进行的内省操作。

用这种方式内省必须要导入两个第三方jar包:BeanUtils和logging。

具体代码如下

有没有震撼于它的简洁啊。Sun的API跟他比简直弱爆了。而且它不但简洁还帮我们省去了类型转换的工作。

BeanUtils.getProperty(d, "name");返回的是字符串。

BeanUtils.setProperty(d, "name", "小嘿嘿");设置的值不管是什么类型都可以是用字符串形式进行传入。因为在javaWeb开发时,我们都是从网页上获取字符串,将字符串写到网页上,上诉方式取出至于设置值都用字符串形式,免去了我们转换类型的烦恼。

-------<a href="http://www.itheima.com/"">android培训</a>、<a
href="http://www.itheima.com/" ">java培训</a>期待与您交流!----------

Java内省技术

时间: 2024-10-16 22:23:51

Java内省技术的相关文章

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

jsp 以及javabean内省技术

l JSP l JavaBean及内省 l EL表达式 1.1 上次课内容回顾 会话技术: Cookie:客户端技术.将数据保存在客户端浏览器上.Cookie是有大小和个数的限制. Session:服务器端技术.将数据保存在服务器端.Session没有大小和个数限制.Session基于Cookie回写了一个JSESSIONID. Cookie的分类: * 会话级别的Cookie:浏览器关闭了,Cookie就销毁了! * 持久化的Cookie: * cookie.setMaxAge(时间); --

JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,假设浏览器没有禁用cookie的话,当浏览器再次訪问项目中的Servlet程序时会将JSESSIONID带着.这时JSESSIONID就像唯一的一把钥匙  开启server端相应的session空

java内省机制Introspector

访问JavaBean属性的两种方式 1)直接调用bean的setXXX或getXXX方法: 2)通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式: a)通过PropertyDescriptor类操作Bean的属性: b)通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,

内省技术

1 javaBean是什么? javabean是一种规范.其实就是一种实体类,需要满足以下的条件: ①必须是public的 ②必须实现Serializable接口 ③字段必须私有化 ④必须提供setter和getter方法 示例: package com; import java.io.Serializable; import java.util.Arrays; /** * 2017/11/2 * 说明: */ public class Student implements Serializab

(转)java缓存技术,记录

http://blog.csdn.net/madun/article/details/8569860 最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇,暂作保存,后面如果有用到可以参考.此为转贴,帖子来处:http://cogipard.info/articles/cache-static-files-with-jnotify-and-ehcache 介绍 JNotify:http://jnotify.sourceforge.net/,通过JNI

浅谈Java分页技术

话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount;//一共有多少页 int rowCount;//一共有多少条记录 说明: 1.pageSize是指定的 2.pageNow是用户选择的 3.rowCount是从表中查询得到的 4.pageCount是计算得到的,该计算为: if(rowCount%pageSize==0) { pageCount=r

Java 内省 Introspector

操纵类的属性,有两种方法 反射 内省 面向对象的编程中,对于用户提交过来的数据,要封装成一个javaBean,也就是对象 其中Bean的属性不是由字段来决定的,而是由get和Set方法来决定的 public class Person { private String name ; private String password; private int age; public String getName() { return name; } public void setName(String

黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06)

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 正则表达式 正则表达式:基本知识 1  字符,   2 字符类 , 3 预定义字符类 , 4 边界匹配器 ,5 Greedy 数量词,6 Logical 运算符 详解: 1 字符 x   字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn (0 <= n