readme

单层YAML对象数据的反序列化处理过程

需求分析

小水滴公司正在开发小水滴校园管理系统。其中一个重要的功能是管理和维护学生的信息和当前状态。为了将学生信息保存在文件系统中,小水滴校园管理系统需要将内存中保存的学生对象首先转化为YAML字符串,然后再存放在文件中。当需要使用学生信息时,再将其从文件中读取出来,转化为学生对象。本项目练习的是从文件中读取学生对象的一个步骤。

学生对象的定义在com.littlewaterdrop.bean包中的Student.java文件中。该类包含了三个成员变量,它们分别是(1) name,字符串类型;(2) age,整数类型;和(3) major,字符串类型。

package com.littlewaterdrop.bean;

public class Student {
    private String name = null;  // 名字
    private Integer age = null;  // 年龄
    private String major = null; // 专业
    ...
}

在项目的com.littlewaterdrop包的StudentInfoLoader.java文件中,定义了类StudentInfoLoader。该类定义了方法loadStudent(),用于从输入参数stream中读取一名学生信息。stream的类型是一个输入流InputStream。在本项目中,stream流中包含的是一个合法的YAML字符串。在loadStudent()中,需要将该YAML字符串信息转化为对应的一个Student对象,并从方法返回该对象。在处理过程中,如果出现任何错误,则返回null。

package com.littlewaterdrop;

public class StudentInfoLoader {
    public Student loadStudent(InputStream stream) {
        // 1. 读取stream对象中的数据,它是一个YAML字符串
        // 2. 将得到的YAML字符串转化为Student对象
        // 3. 返回得到的Student对象,并关闭stream流
        return null;
    }
}

以下是一个YAML字符串格式的学生信息的用例。它包含name、age和major三个字段。

---
name: "Adam"
age: 21
major: "Chemistry"

参考文档

  1. YAML数据格式
  2. Jackson库的工作原理和使用方法
  3. Java语言的特性
  4. Maven工程管理工具
Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.