数据类是Java中专用于封装和传递数据、不含复杂业务逻辑的简单对象,如DTO、VO、PO等;其字段私有、提供getter/setter、常实现Serializable、重写基础方法,强调结构清晰与序列化能力。
数据类(Data Class)在 Java 中通常指专门用于封装数据、不包含复杂业务逻辑的简单对象,也常被称为“数据载体对象”或“DTO(Data Transfer Object)”、“VO(View Object)”、“PO(Persistent Object)”等,核心作用是承载和传递数据。
它符合面向对象中“封装”的基本思想,但弱化行为,强调结构清晰、可读性强、易于序列化和传输:
根据所处层级和用途不同,命名和职责略有区分:
以用户信息 DTO 为例(使用 Lombok 简化):
@Data
public class UserDto implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String username;
private String email;
private LocalDateTime createTime;
}
这个类没有业务方法,只负责安全、明确地表达一组相关数据。调用方通过 getter 获取值,框架可通过 setter 或反射完成赋值,适合 JSON 转换(如 Jackson)、数据库映射或 RPC 参数传递。
本质上,数据类不是语法概念,而是约定俗成的设计角色——它让代码职责分离更清晰:行为交给 Service,数据交给 DTO/VO/PO。不复杂但容易忽略。