Невозможно распечатать все параметры в объекте REST - PullRequest
0 голосов
/ 25 января 2019

У меня есть ученический класс с несколькими полями.По какой-то причине я не получаю "созданный" объект, созданный в объекте Student.Когда я посылаю вызов GET для получения информации обо всех объектах ученика, я вижу только первые 4 параметра.Отсутствует созданное поле.Что мне не хватает?

В конструкторе Student я определил "this.created = new Date ();"присвоить значение созданному полю.

 public class Student {

    private String firstName;
    private String lastName;
    private String address;
    private String enrolledDepartment;
    private Date created;

    public Student() {          
    }

    public Student(String firstName, String lastName, String address, String departmentName){
        this.firstName = firstName;
        this.lastName = lastName;
        this.address = address;
        this.enrolledDepartment = departmentName;
        this.created = new Date();
    }

   // Getter and setters of all fields
}

Класс ресурса

@Path("/students")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class StudentsResource {

    List<Student> students = new ArrayList<>();
    private StudentService studentService = new StudentService();

    @GET
    public List<Student> getProfiles() {
        return studentService.getAllStudents();
    }

    @POST
    public Student addProfile(Student profile) {
        return studentService.addProfile(profile);
    }
}

Класс обслуживания

public class StudentService {

    private List<Student> students = DatabaseClass.getStudents();

    public List<Student> getAllStudents() {
        return students; 
    }

    public Student addProfile(Student student) {
        students.add(student);
        return student;
    }
}

Класс базы данных

public class DatabaseClass {

    private static List<Student> students = new ArrayList<>();
    private static List<Email> emails = new ArrayList<>();

    public static List<Student> getStudents() {
        return students;
    }

    public static List<Email> getEmails() {
        return emails;
    }
}

Iотправляю запрос POST, используя следующий JSON

{
    "address": "Boston",
    "enrolledDepartment": "health",
    "firstName": "abc",
    "lastName": "pqr"
}

1 Ответ

0 голосов
/ 25 января 2019

Добавьте это к «конструктору по умолчанию»:

 public Student() {
    this.created = new Date();          
 }

... предполагаемый конструктор не вызывается, поэтому created остается null.

или даже:

// ...
private Date created = new Date();

public Student() {          
}

public Student(String firstName, String lastName, String address, String departmentName){
    this.firstName = firstName;
    this.lastName = lastName;
    this.address = address;
    this.enrolledDepartment = departmentName;
    //this.created = new Date();
}

(инициализируйте его в объявлении.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...