javabean是什么意思,javabean属性有哪些
在Java中,有很多class的定义都符合这样的规范:
若干private实例字段; 通过public方法来读写实例字段。
例如:
public class Person { private String name; private int age; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; }}
如果读写方法符合以下这种命名规范:
// 读方法:public Type getXyz()// 写方法:public void setXyz(Type value)
那么这种class被称为JavaBean:
上面的字段是xyz,那么读写方法名分别以get和set开头,并且后接大写字母开头的字段名Xyz,因此两个读写方法名分别是getXyz()和setXyz()。
// 读方法:public boolean isChild()// 写方法:public void setChild(boolean value)
对应的读方法是String getName() 对应的写方法是setName(String)
只有getter的属性称为只读属性(read-only),例如,定义一个age只读属性:
对应的读方法是int getAge()
无对应的写方法setAge(int)
类似的,只有setter的属性称为只写属性(write-only)。
很明显,只读属性很常见,只写属性不常见。
属性只需要定义getter和setter方法,不一定需要对应的字段。例如,child只读属性定义如下:
public class Person { private String name; private int age; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public boolean isChild() { return age <= 6; }}
可以看出,getter和setter也是一种数据封装的方法。
JavaBean的作用
JavaBean主要用来传递数据,即把一组数据组合成一个JavaBean便于传输。此外,JavaBean可以方便地被IDE工具分析,生成读写属性的代码,主要用在图形界面的可视化设计中。
通过IDE,可以快速生成getter和setter。例如,在Eclipse中,先输入以下代码:
public class Person { private String name; private int age;}
然后,点击右键,在弹出的菜单中选择“Source”,“Generate Getters and Setters”,在弹出的对话框中选中需要生成getter和setter方法的字段,点击确定即可由IDE自动完成所有方法代码。
枚举JavaBean属性
要枚举一个JavaBean的所有属性,可以直接使用Java核心库提供的Introspector:
import java.beans.*;public class Main { public static void main(String[] args) throws Exception { BeanInfo info = Introspector.getBeanInfo(Person.class); for (PropertyDescriptor pd : info.getPropertyDescriptors()) { System.out.println(pd.getName()); System.out.println(" " + pd.getReadMethod()); System.out.println(" " + pd.getWriteMethod()); } }}class Person { private String name; private int 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; }}
运行上述代码,可以列出所有的属性,以及对应的读写方法。注意class属性是从Object继承的getClass()方法带来的。
小结
JavaBean是一种符合命名规范的class,它通过getter和setter来定义属性。
属性是一种通用的叫法,并非Java语法规定。
可以利用IDE快速生成getter和setter。
使用Introspector.getBeanInfo()可以获取属性列表。
本文地址:百科问答频道 https://www.neebe.cn/wenda/933471.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!