什么是javaBean

  引:简单的说就是一个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只是一个字段,没有提供settergetter方法的.只是字段;
当添加了如下的方法
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();
        }
原文地址:https://www.cnblogs.com/mohe/p/3284602.html