`
啸笑天
  • 浏览: 3462512 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

30-31内省访问JavaBean属性的两种方法

 
阅读更多

 

30 JavaBean的简单内省操作

 

//pt1为javaBean对象,propertyName为要设置的属性,value为给javaBean的值
private static void setProperties(Object pt1, String propertyName,
         Object value) throws IntrospectionException,
         IllegalAccessException, InvocationTargetException {
      PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
      Method methodSetX = pd.getWriteMethod();
       methodSetX.invoke(pt1, value);
   }
//pt1为javaBean对象,propertyName为要获取的属性
   private static Object getProperty(Object pt1, String propertyName)
         throws IntrospectionException, IllegalAccessException,
         InvocationTargetException {
      PropertyDescriptor pd=new PropertyDescriptor(propertyName, pt1.getClass());
      Method methodGetX=pd.getReadMethod();
      Object retVal=methodGetX.invoke(pt1);//因为不知道返回的是什么类型,所以用Object
      return retVal;
   }
 
 

 

31 JavaBean的复杂内省操作

l  演示用eclipse自动生成 ReflectPoint类的settergetter方法。

l  直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用一段代码读取JavaBean的属性,然后再用一段代码设置JavaBean的属性。

l  演示用eclipse将读取属性和设置属性的流水帐代码分别抽取成方法:

Ø  只要调用这个方法,并给这个方法传递了一个对象、属性名和设置值,它就能完成属性修改的功能。

Ø  得到BeanInfo最好采用“obj.getClass()”方式,而不要采用“类名.class”方式,这样程序更通用。

l  采用遍历BeanInfo的所有属性方式来查找和设置某个RefectPoint对象的x属性。在程序中把一个类当作JavaBean来看,就是调用IntroSpector.getBeanInfo方法, 得到的BeanInfo对象封装了把这个类当作JavaBean看的结果信息。

 

 

private static Object getProperty(Object pt1, String propertyName)throws Exception {
		/*PropertyDescriptor pd=new PropertyDescriptor(propertyName, pt1.getClass());
		Method methodGetX=pd.getReadMethod();
		Object retVal=methodGetX.invoke(pt1);//因为不知道返回的是什么类型,所以用Object
		*/
		BeanInfo beanInfo =  Introspector.getBeanInfo(pt1.getClass());
		PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
		Object retVal = null;
		for(PropertyDescriptor pd : pds){
			if(pd.getName().equals(propertyName))
			{
				Method methodGetX = pd.getReadMethod();
				retVal = methodGetX.invoke(pt1);
				break;
			}
		}
		return retVal;
	}
 

 

 

 



  


  
分享到:
评论

相关推荐

    黑马程序员-----javaBean的操作类学习笔记

    JavaBean是Java编程语言中的一种特定类,它遵循一定的规范,用于封装数据并提供属性访问。在Java开发中,JavaBean被广泛应用于组件开发、数据持久化和MVC(Model-View-Controller)架构中。JavaBean操作类的学习是...

    J2EE-6-第6章JavaBean.ppt

    J2EE-6-第6章JavaBean.ppt

    JavaBean及内省文档

    JavaBean 是一种遵循特定编码规范的 Java 类,主要用于封装数据并提供访问这些数据的方法。它被广泛应用于 J2EE 开发中,作为组件化的一部分,使得代码更易于管理和复用。 ##### 特征: 1. **构造函数**:JavaBean...

    javabean属性资料

    以下是对四种不同类型的JavaBean属性的详细说明: 1. **Simple 属性** Simple属性是最基础的属性类型,它包含一对getter和setter方法,用于获取和设置属性的值。属性名称通常与getter和setter方法的名字相对应。...

    博客网站-JSP-源代码-JavaBean+Serlvet技术

    在这个博客网站中,JavaBean可能被用来封装博客文章的数据,如标题、作者、内容等,提供一套标准的方法供其他组件(如JSP或Servlet)访问和操作这些数据。开发者可以通过查找并分析项目中的.java文件,特别是那些以...

    javaee5编程郭庆j2ee-6-第6章javabean.ppt

    javaee5编程郭庆j2ee-6-第6章javabean.ppt

    java 基础之JavaBean属性命名规范问题.docx

    JavaBean的属性通常通过getter和setter方法进行访问和设置。为了确保这些属性能够被其他Java技术正确识别和操作,它们必须遵循一定的命名规则。其中最重要的两条规则如下: 1. **属性名**:属性名应由两个或更多的...

    JSON入门Java篇-5-用JavaBean来构建JSON.rar

    3. 提供getter和setter方法以便访问和修改属性。 三、Java到JSON的转换 1. 使用Gson库:Google开发的Gson库可以方便地将Java对象转换为JSON字符串,反之亦然。例如: ```java import com.google.gson.Gson; ...

    Struts+spring+hibernate3---JSP+javabean+DAO---JSF+richfaces+seam+EJB

    1)JSP+javabean+DAO(Ajax:anywhere) 2)Struts+spring+hibernate3(AJax:DOJO) 3)JSF+richfaces+seam+EJB 总共3个完整的实例,并配有需求分析~~~~~~~~,绝对经典!

    Jave EE 基础入门注释版--JSP+JavaBean+Servlet(MVC)模式

    Jave EE 基础入门注释版--JSP+JavaBean+Servlet(MVC)模式 适合初学者,实现基本的增添改查(包括分页)注释明确 内含数据库脚本

    毕业设计-源码JSP基本javabean技术的网络书店系统

    在网络书店系统中,JavaBean可以用来表示实体对象,如书籍(Book)、用户(User)等,存储其属性,并提供操作这些属性的方法,如添加书籍到购物车、更新用户信息等。 **网络书店系统的实现:** 1. **用户模块**:...

    Jsp-Servlet-JavaBean企业事务管理系统

    JavaBean的属性对应数据库中的字段,其getter和setter方法用于读取和修改这些属性,而业务逻辑方法则执行特定的操作,如添加新闻、删除用户等。JavaBean的标准化使得它们可以在多个层面上复用,提高了代码的可维护性...

    【IT十八掌徐培成】Java基础第04天-05.构造代码块-构造函数-javabean-pojo.zip

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。在这个【IT十八掌徐培成】的课程中,我们重点关注了...构造代码块-构造函数-javabean-pojo.avi】,你可以更深入地学习和实践这些知识点。

    图书管理系统--JSP+JAVABEAN+JDBC源代码

    例如,我们可以创建一个`BookBean`,包含书名、作者、出版社等属性,以及相关的操作方法如添加、修改、删除书籍等。这样做的好处是提高了代码的复用性,使得业务处理更加模块化。 【JDBC(Java Database ...

    在线通讯-jsp-servlet-javabean

    用jsp-servlet-javabean做的一个项目!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...

    课程设计--基于JSP+JavaBean+Servlet的课程管理系统

    基于JSP+JavaBean+Servlet的课程管理系统的总体设计目标是为教师和学生提供一个课程管理平台。学生可以通过该系统快速地选择自己喜欢的课程,并且可以查看教师已经给出的某门课程的成绩,此外学生还可以更改自己的...

    Java试题-6:JavaBean的应用

    问题描述:存在一个JavaBean,它包含以下几种可能的属性: 1.boolean/Boolean 2.int/Integer 3.String 4.double/Double 属性名未知, 现在要给这些属性设置默认值, 以下是要求的默认值:String类型的默认值为字符串 ...

    JavaBean - Bound属性

    2. **提供getter和setter方法**:为了访问和修改这个属性,我们需要提供公共的getter和setter方法,例如`public String getName()`和`public void setName(String name)`。 3. **添加PropertyChangeSupport对象**:...

    在JSP中调用JavaBean实现Web数据库访问.pdf

    开发JavaBean时,需注意其应遵循JavaBean规范,如提供无参数构造函数、属性的get和set方法等。在本文中,JavaBean "DBconn.class"负责数据库连接,通过`sun.jdbc.odbc.JdbcOdbcDriver`驱动程序和`jdbc:odbc:Courses`...

    JSP记录网站访问次数 javabean 将访问的次数写入文件 源码

    `MyCount`类有两个关键方法:`increment()`用于增加访问次数,`getCount()`用于获取当前的访问次数。在`increment()`方法中,我们需要读取文件中的现有计数值,增加1,然后将新值写回文件。这通常涉及文件I/O操作,...

Global site tag (gtag.js) - Google Analytics