使用 Java 进行重构 8
Refactoring using Java 8
我想通过使用 Java 8 来重构我的代码,所以我想而不是使用这样的 setter 方法:
Class MyService{
User user = new User();
user.setName(response.getName());
user.setId(response.getId());
user.setType(response.getType());
user.setDesignation(response.getDesignation());
}
在我的服务中 Class。
我在我的用户 Pojo 中创建了一个方法
Class User{
public static User create(Response response){
User user = new User();
user.setName(response.getName());
user.setId(response.getId());
user.setType(response.getType());
user.setDesignation(response.getDesignation());
return user;
}
}
在我的服务中 class,我写道:
List<User> userList=reponseList.stream().map(User::create).collect(toList());
这是正确的方法还是其他更好的解决方案?实际上,我的服务中有很多 setter 方法。
与其创建静态创建方法,不如定义一个 User 构造函数,该构造函数接受 Response 并从中初始化自身。
Class User{
public User(Response response) {
setName(response.getName());
setId(response.getId());
setType(response.getType());
setDesignation(response.getDesignation());
}
}
那么您可以拨打:
List<User> userList=responseList.stream().map(User::new).collect(toList());
我想通过使用 Java 8 来重构我的代码,所以我想而不是使用这样的 setter 方法:
Class MyService{
User user = new User();
user.setName(response.getName());
user.setId(response.getId());
user.setType(response.getType());
user.setDesignation(response.getDesignation());
}
在我的服务中 Class。
我在我的用户 Pojo 中创建了一个方法
Class User{
public static User create(Response response){
User user = new User();
user.setName(response.getName());
user.setId(response.getId());
user.setType(response.getType());
user.setDesignation(response.getDesignation());
return user;
}
}
在我的服务中 class,我写道:
List<User> userList=reponseList.stream().map(User::create).collect(toList());
这是正确的方法还是其他更好的解决方案?实际上,我的服务中有很多 setter 方法。
与其创建静态创建方法,不如定义一个 User 构造函数,该构造函数接受 Response 并从中初始化自身。
Class User{
public User(Response response) {
setName(response.getName());
setId(response.getId());
setType(response.getType());
setDesignation(response.getDesignation());
}
}
那么您可以拨打:
List<User> userList=responseList.stream().map(User::new).collect(toList());