引:简单的说就是一个model.在MVC里的M.
例:
public class Person { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
这就是一个Javabean.用来封装数据的模型;
一: 什么是Javabean的属性?
需要注意的是
private String name;
name只是一个字段,没有提供setter或getter方法的.只是字段;
当添加了如下的方法
public String getName() { return name; }
name则是一个属性;
二:下面有几个属性
public class Person { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public int getId(int id){ return id; } }
答案是4个.除了name和age之外,Id也是一个属性,属性不需要有字段,只需要有提供geter或者setter方法就是一个属性;那么也只有3个!
第四个怎么来的?
我们都知道所有类都是Object的子类,Object是所有类的基类.
查看Object源码,里面有有一个方法是:public final native Class<?> getClass();Class也是一个属性;
三:下面是利用"内省"来验证:
try { BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);//获得BeanInfo,BeanInfo里封装的是Bean的所有属性 PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();//获得属性,返回的是一个属性数组 for(PropertyDescriptor p : propertyDescriptors ){//遍历属性数组 System.out.println( p.getName());//打印属性名字 } } catch (IntrospectionException e) { // TODO Auto-generated catch block e.printStackTrace(); }