readme

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

需求分析

小水滴公司正在开发小水滴校园管理系统。其中一个重要的功能是管理和维护学生的信息和当前状态。校园管理系统提供了查询学生当前状态的接口。该接口接收学生的姓名作为唯一参数,返回一个YAML结构的字符串,用于表示该学生的信息和状态。如下面的代码所示,StudentInfoManager类的成员方法queryStudent()接受一个字符串name作为参数,返回一个YAML字符串,表示对应学生的信息。

public class StudentInfoManager {
  public String queryStudent(String name) {
    ...
  }
}

操作步骤

在项目的com.littlewaterdrop.bean包中的Stduent.java文件中,定义了学生Student类。该类包含三个成员变量,它们分别是(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包中的StudentInfoManager.java文件中,定义了类StudentInfoManager。该类包含了一个Map类型的成员变量studentInfo,用于存放从name至Student对象的映射。方法addStudent()则是向studentInfo中添加新的Student对象。queryStudent()方法接受一个学生的名字,并将该Student对象转换成YAML字符串,从方法返回。若学生不存在,则返回null。

学员需要实现queryStudent()方法。该方法的实现分为三个步骤。第一个步骤是从studentInfo中查询对应的Student对象。第二个步骤使用Jackson代码库提供的功能,将该Student对象转换为一个YAML字符串。第三个步骤返回生成的YAML字符串。

package com.littlewaterdrop;

public class StudentInfoManager {
    private Map<String, Student> studentInfo = null;

    public StudentInfoManager() {
        studentInfo = new HashMap<String, Student>();
    }

    public void addStudent(Student student) {
        studentInfo.put(student.getName(), student);
    }

    public String queryStudent(String name) {
        // 1. 从studentInfo中查询Student对象
        // 2. 将得到的Student对象序列化成一个YAML字符串
        // 3. 返回得到的YAML字符串
        return null;
    }
}

最后,在com.littlewaterdrop包中的Project.java文件包含了StudentInfoManager类的使用方法用例和一些测试用例。学员可以通过运行这些测试用例检查queryStudent()方法是否运行正确。

参考文档

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