Java转换类 [英] Java Converting Classes

查看:63
本文介绍了Java转换类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个像这样的班级:

I have a class like:

Student
-name
-surname
-address
-number

,我有一个DTO,如:

and I have a DTO for it like:

StudentDTO
-name
-surname
-number

我会将学生班级的姓名,姓氏和数字字段(不代表所有字段)发送给另一个班级,因此我决定将其命名为DTO(我不使用序列化或其他方法,只是将此类的对象作为参数发送给其他任何类的方法)。

I will send my student class to another class just with name, surname and number fields(I mean not with all fields) and I decided to name it as DTO (I am not using serializing or etc. just I send this class's object as parameter to any other class's methods).

但是,假设我有这样的代码行:

However lets assume that I have a line of code like that:

getAllStudents();

并返回:

List<Student>

但我想将其分配给以下变量:

but I want to assign it to a variable that:

List<StudentDTO>

如何轻松转换它们?

PS:我无法更改我的 getAllStudents(); 方法的内部。我有学生列表,并且想要一种快速且经过精心设计的方法将一个对象列表转换为另一个对象列表。

PS: I can't change my getAllStudents(); method's inside. I have list of students and want a fast and well-designed way to convert a list of objects into another list of objects.

推荐答案

public StudentDTO convert() {
    StudentDTO newDTO = new StudentDTO(name, surname, number);
    return newDTO;
}

您可以将其实现为公共方法。

And you can implement this as a public method.

很显然,这将被抽象为可以进行批处理的较大的convert方法。另一种选择是实现Cloneable并仅为Student-> StudentDTO创建一个特定的实现。

This, obviously, would be abstracted out into a larger convert method that could do batch processing. Another alternative would be to implement Cloneable and create a specific implementation just for Student -> StudentDTO.

迭代示例:

List<StudentDTO> myList = new ArrayList<>();
    for (Student s : collection) {
        myList.add(s.convert());
    }
    return myList;

这篇关于Java转换类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆