什么是javabean?它是干什么用的?什么是代码示例?我听说它用于与getter和setter方法有关吗?我对java bean是什么以及你甚至访问它的地方都很困惑。我用谷歌搜索,但找不到明确的答案。
答案 0 :(得分:48)
Java Bean是一个普通的Java类,它的私有属性具有公共getter和setter方法。
Java Bean通常用作帮助程序类。
示例 -
public class User implements java.io.Serializable {
private String name;
private Integer age;
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public Integer getAge(){
return this.age;
}
public void setAge(Integer age){
this.age = age;
}
}
实现Serializable
不是强制性的,但如果你想在Java的内存中保留或传输Javabeans,则非常有用,例如在硬盘或网络上。
答案 1 :(得分:19)
JavaBeans是Java的可重用软件组件。实际上,它们是用符合特定约定的Java编程语言编写的类。它们用于将许多对象封装到单个对象(bean)中,以便它们可以作为单个bean对象而不是作为多个单独对象传递。 JavaBean是一个可序列化的Java对象,具有0参数构造函数,并允许使用getter和setter方法访问属性。
优点
缺点
示例:
package beans;
/**
* Class <code>PersonBean</code>.
*/
public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;
/** No-arg constructor (takes no arguments). */
public PersonBean() {
}
/**
* Property <code>name</code> (note capitalization) readable/writable.
*/
public String getName() {
return this.name;
}
/**
* Setter for property <code>name</code>.
* @param name
*/
public void setName(final String name) {
this.name = name;
}
/**
* Getter for property "deceased"
* Different syntax for a boolean field (is vs. get)
*/
public boolean isDeceased() {
return this.deceased;
}
/**
* Setter for property <code>deceased</code>.
* @param deceased
*/
public void setDeceased(final boolean deceased) {
this.deceased = deceased;
}
}
答案 2 :(得分:7)
嗯,JavaBean API定义了许多与JavaBeans相关的约定。根据维基百科:
所需的约定如下:
- 该类必须具有公共默认构造函数(无参数)。这样可以在编辑和激活框架中轻松实例化。
- 必须使用get,set,is(用于布尔属性而不是get)和其他方法(所谓的)来访问类属性 访问方法和mutator方法),遵循标准命名 惯例。这样可以轻松自动检查和更新bean 框架内的状态,其中许多包括自定义编辑器 各种类型的属性。塞特斯必须只收到一个论点。
- 该类应该是可序列化的。它允许应用程序和框架可靠地保存,存储和恢复bean中的状态 时尚独立于VM和平台。
通常,这些是可以在应用程序中找到的最常见的类类型,因为它们可用于对所使用的数据进行建模。这种bean的一个例子如下所示:
public class Person implements Serializable
{
private String name;
private boolean alive;
public Person()
{
// constructor logic...
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public boolean isAlive()
{
return alive;
}
public void setAlive(boolean alive)
{
this.alive = alive;
}
}
如您所见,属性反映在getter和setter中。
HTH
答案 3 :(得分:1)
如果你在谈论 java-beans而不是EJB Bean ,那么这里有解释......
1。 JavaBean有一个不带参数的构造函数。
2. JavaBean有一组属性。
3. JavaBean具有访问器(getXxx或用于布尔属性的isXxx)方法和mutator方法(setXxx),允许访问其基础属性。
第3点说明了一个带有私有实例变量和公共getter setter的java类。
例如:
import java.util.Date;
public class User {
private Date loginDate;
private String name;
private String password;
public User() { }
public Date getLoginDate() {
return loginDate;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public void setLoginDate(Date loginDate) {
this.loginDate = loginDate;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public void delete() {
// code to delete user from database
}
public void update() {
// code to update user in database
}
public static User getUser(String name) {
// code returning a new User object
// populated from the database
}
}