gpt4 book ai didi

java - 设置不同对象具有相同的属性

转载 作者:行者123 更新时间:2023-12-02 00:06:05 25 4
gpt4 key购买 nike

这不是我第一次遇到必须用几乎相同的数据调整两个对象的情况,例如:

User.java  (Object returned from another library)
private String name;
private String surname;
private String email;
private String telephone;
...
getters and setters();
constructor();
<小时/>
MyUser.java
private String name;
private String surname;
private String email;
private String telephone;
...
getters and setters();
constructor();

我通常创建一种方法将一个对象转换为另一个对象,如下所示:

 User m1 = new User();
MyUser m2 = new MyUser();
m2.setName(m1.getName());
m2.setsurmame(m1.getsurname());

...等等...

有人知道做这种事情的不同方法吗?

最佳答案

使用Object Composition对于使用其他库创建的对象,请创建 ExternalUser 的实例。但如果您想在本地创建它们,请创建一个 BrandNewUser。然后,您可以以相同的方式对待它们,一个版本使用传递组合方法,另一个版本使用您自己的内部实现由您的代码创建。

您可以像这样创建对象:

public interface MyUser {
// all the methods you need
String getSurname();
}

public class ExternalUser implements MyUser {
private User _user;
private ExternalUser() { }
public ExternalUser(User u) {
this._user = u;
}
public String getSurname() {
return _user.getSurname();
}
}

public class BrandNewUser implements MyUser {
private String _surname;
public ExternalUser(String name, String surname) {
this._surname = surname;
}
public String getSurname() {
return _surname;
}
}

关于java - 设置不同对象具有相同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com