黑马程序员——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面向对象——JavaBean内省

JavaBean 是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 如果要在两个模块之间传递多个信息,可以将这些信息封装到一个...

黑马程序员——JavaBean

------- android培训、java培训、期待与您交流! ---------- 总是感觉这部分有点云里雾里,现在重新整理笔记。 PropertyDescriptor第一眼并没有记住它,强行...

黑马程序员——javabean、内省和BeanUtils

一、Javabean的命名规范 javabean,是一个特殊的类。它不像其他类一样依靠继承某些接口而实现。对于javabean,只要你的Java类书写符合某些规范就可以算是javabean。 下面...

黑马程序员——内省JavaBean总结

一.概况: JavaBean是一种特殊的java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 示例: 一般具有这种setAge()、getAg...

黑马程序员——内省,JavaBean,注解,泛型,类加载器,代理

------- android培训、java培训、期待与您交流! ----------------- android培训、java培训、期待与您交流! ----------...
  • huamoai
  • huamoai
  • 2014年05月20日 11:24
  • 427

黑马程序员——高新技术(内省、javaBean、BeanUtils工具)

------- android培训、java培训、期待与您交流! ---------- 内省 内省英文名称为IntroSpector,用于对JavaBean进行操作,即JDK中提供了JavaBean进...

黑马程序员——JavaBean、内省 和 注释

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员——JavaBean内省

内省对应的英文单词为IntroSpector,它主要用于对JavaBean进行操作 JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——JAVA笔记——JavaBean
举报原因:
原因补充:

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