在子级而非父级中复制构造函数

大卫 :

我有以下两节课:

public class User {
     public Integer userId;
     // ...another 50-60 fields
}

public class SuperUser extends User {
}

我想在SuperUser中有一个构造函数,该构造函数接受User类型的对象并创建SuperUser类型的对象。例如:

public SuperUser(User theUser) {
    // not legal -> but I am looking for a one-liner to initialize this with values from theUser
    this = theUser;
}

如果User对象缺少构造函数User(User existingUser),是否有任何自动方法可以使用现有用户对象中的所有字段初始化SuperUser对象?我正在尝试避免以下50行:

public SuperUser(User theUser) {
    this.firstName = theUser.getFirstName();
    this.lastName = theUser.getLastName();
    // and so on....
}

如果无法做到这一点,是否存在像“创建副本构造函数”这样的重构?

谢谢!

博zh:

看一下commons-beanutilsBeanUtils.copyProperties(..)

SuperUser superUser = new SuperUser();
BeanUtils.copyProperties(superUser, originalUser);

或者,您可以将其放置在复制构造函数中:

public SuperUser(User originalUser) {
   BeanUtils.copyProperties(this, originalUser);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在父级的构造函数中使用子级的属性

在子级而非子级或父级中执行Maven插件

复制父级和子级属性

在父级中调用函数并将`this`绑定到子级?

我可以在父级没有子级构造函数的情况下添加子级构造函数吗?

如何在ES6中调用班级的父级的父级构造函数?

泛型类构造函数获取父级,在父级中设置值?

从注入到父级构造函数的服务接收的值传递给子级组件

将变量传递给Kotlin中父级的构造函数

在子级中访问父级ngForm

在父级中捕获子级错误

继承的类和父级的构造函数

C ++遮罩父级构造函数

Linux中的fork()是否将所有父级的内存页复制到子级?

允许子 iframe 访问父级中的特定 javascript 函数

给定父级ID和子级,在lodash中嵌套父级子级关系

父级的析构函数中的CRTP调用子级函数

将父级中的函数绑定到子级中的鼠标事件以响应(挂钩)

在父级中传递函数,在子级中传递参数

执行从 Javascript 中的构造函数数组访问的构造函数的父级的“静态”方法

从其子级触发React父级功能组件中的函数

Kotlin:子级构造函数如何使用其父级的二级构造函数?

父级函数从未调用子级$ emit之后

当父级,子级和子级进程共享页面时,写时复制如何工作?

如何从父级调用子级构造函数?

在Angular 4中在父级中渲染子级路线

从FXML中创建的父级中删除子级

如果父级没有没有参数的构造函数,我如何制作子构造函数

如何强制(带有警告)覆盖其子级的子级调用父级函数?