黑马程序员——JAVA笔记——JavaBean

原创 2015年07月08日 13:35:58

------- android培训java培训、期待与您交流! ----------


JavaBean:为一种特殊的类,类中大多为私有字段,并通过固定的名称,也就是set、get方法来操作信息。

IntroSpector(内省):为了更好的操作对象的属性而出现,有利于操作对象的属性,减少代码的书写。


内省访问JavaBean代码的方法有两种:

1、通过PropertyDescriptor来操作。

import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

public class Demo1
{
	public static void main(String[] args) throws Exception
	{
		Student stu=new Student("zhangsan",22);
		String PropertyName="name";
		PropertyDescriptor pd=new PropertyDescriptor(PropertyName,Student.class);
		Method getMethod=pd.getReadMethod();
		Method setMethod=pd.getWriteMethod();
		Object name=getMethod.invoke(stu);
		System.out.println(name);
		setMethod.invoke(stu,"lisi");
		System.out.println(getMethod.invoke(stu));
	}
}

class Student{
	private String name;
	private int age;
	
	Student(String name,int age){
		this.name=name;
		this.age=age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}


2、通过IntroSpector中的getBeanInfo方法获取BeanInfo,再通过BeanInfo获取PropertyDescriptors,最后通过PropertyDescriptor获取信息。

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;

public class Demo1
{
	public static void main(String[] args) throws Exception
	{
		Student stu=new Student("zhangsan",22);
		String PropertyName="name";
		
		BeanInfo beaninfo = Introspector.getBeanInfo(Student.class);
		PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();
		for(PropertyDescriptor pd:pds){
			if(pd.getName().equals(PropertyName)){
				System.out.println(pd.getReadMethod().invoke(stu));
				break;
			}
		}
	}
}


class Student{
	private String name;
	private int age;
	
	Student(String name,int age){
		this.name=name;
		this.age=age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}


通过PropertyDescriptor获取信息的方法:

getName() 获得属性的名字。

getPropertyType() 获得属性的class对象;

getReadMethod() 获得用于读取属性值的方法;

getWriteMethod() 获得用于写入属性值的方法;

黑马程序员学习笔记 Java的三大框架

如果做javaweb开发,spring是一定要学的,现在主流还是ssh,就是strurs+hibernate+spring,其中hibernate是持久层,用来持久化数据库操作的,如果不喜欢可以学点别...
  • Mr_April
  • Mr_April
  • 2015年07月03日 17:12
  • 1607

黑马程序员_Java基础_我的day01学习笔记

01. 常见的DOS命令讲解 A:d: 回车 盘符切换 B:dir(directory):列出当前目录下的文件以及文件夹 C:cd (change directory)改变指定目录(进入指定目录)...
  • qq_21796869
  • qq_21796869
  • 2016年07月05日 10:36
  • 208

黑马程序员--Struts2复习笔记

--------
  • li951418089
  • li951418089
  • 2015年12月24日 10:26
  • 279

黑马程序员:Hibernate基础知识

android培训、java培训
  • u012159707
  • u012159707
  • 2013年09月26日 15:42
  • 610

黑马程序员——struts2学习笔记一

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ struts2学习笔记一 一、strust2工作原理...
  • ajin2015
  • ajin2015
  • 2015年08月03日 23:04
  • 866

黑马程序员--【阳哥笔记】Java基础之笔记系列(全)

------- android培训、java培训、期待与您交流! ---------- 【阳哥笔记】Java基础之笔记系列(全) http://bbs.itheima.com/thread-20...
  • MH_LZX001
  • MH_LZX001
  • 2015年10月20日 21:25
  • 579

黑马程序员--- 送大家一份毕老师的笔记

文章来源:黑马程序员,黑马论坛。     送大家一份毕老师的笔记,自己一边看,一遍弄的,有很多截图,大家没事看两眼,当复习资料应该不错   http://pan.baidu.com/s/1p...
  • jasjsdajsdjf
  • jasjsdajsdjf
  • 2014年08月16日 20:55
  • 235

黑马程序员—黑马6期又出了一个面5家拿4家offer的offer哥,给力~~~标题要长~

文章来源:黑马程序员,黑马论坛
  • heima_25
  • heima_25
  • 2014年08月24日 13:07
  • 657

黑马程序员_我的Linux基础整理笔记

Linux Linux文件目录和分区 文件目录: /:根目录 /root:存放root用户的相关文件 /home:存放普通用户的相关文件 /bin:存放普通用户的可执行命令 /sbin:...
  • zhengzhongjie1990
  • zhengzhongjie1990
  • 2014年07月05日 17:08
  • 1666

黑马程序员--JAVA学习笔记

------- android培训、java培训、期待与您交流! ---------- 今天开始我的黑马程序员第一天学习,其实我之前已经开始学习了,只是今天才开始写博客。 之前有自学过半年,J...
  • u011840124
  • u011840124
  • 2013年08月27日 14:25
  • 177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——JAVA笔记——JavaBean
举报原因:
原因补充:

(最多只允许输入30个字)