字段包含对象动态生产javabean_POJO与JavaBean区别

本文详细解释了POJO(Plain Ordinary Java Object)的概念及其特点,并对比介绍了JavaBean的定义和约束条件,包括其实现Serializable接口的要求、字段的访问控制以及getter/setter方法的使用。
6ffc86afb8e4b418afbb974bccf5f251.png

POJO:Palin Ordinary Java Object,简单的普通的java对象,只有简单的属性及set、get方法,没有业务逻辑方法,通常用作数据库表对象VO或者数据传输对象DTO。

一个POJO不应该做的事儿

1、继承指定的类,例如: public class Car extends javax.servlet.http.HttpServlet { … },这里的Car就不是一个 POJO 类。

2、实现指定的接口,例如:public class Bar implements javax.ejb.EntityBean { … } ,这里的Bar就不是一个POJO类。

3、包含指定注释,例如:@javax.persistence.Entity public class Person{ … } ,这里的Person就不是一个POJO类。

一个标准的POJO类如下:

// Employee POJO class to represent entity Employee public class Employee { // default field String name; // public field public String id; // private salary private double salary; //arg-constructor to initialize fields public Employee(String name, String id, double salary) { this.name = name; this.id = id; this.salary = salary; } // getter method for name public String getName() { return name; } // getter method for id public String getId() { return id; } // getter method for salary public Double getSalary() { return salary; } } 

JavaBean:Bean是特殊类型POJO,定义一个JavaBean具有一定的条件约束。

1、它们应该实现Serializable接口

2、字段应该被定义为Private,这样可以通过getter/setter方法对其进行值的设置获取控制

3、字段应该有getter或setter或两者兼而有之

4、bean中应该有一个无参数构造函数

5、字段只能由构造函数或getter方法访问

例如:

// Java program to illustrate JavaBeans class Bean { // private field ageprivate Integer age; Bean() { // No-arg constructor } // setter method for agepublic void setAge(Integer age) { if (age== 0) { // if age is 0 return return; } this.age=age; } // getter method for agepublic int getAge() { if (age== 0) { // if ageis 0 return null return null; } return age; } } 

上边定义的Bean如果将age的可见性设置为public,那么任何对象都可以使用它。假设我们要求age不可能是0,在这种情况下你无法控制因为任何对象都可以设置age为0,这样就不符合一个JavaBean的定义。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值