首页 > 解决方案 > 在java中扩展多个类的泛型

问题描述

我有两个类:User 和 UserDto。它们是相似的,例如:

User {
int id;
get\set}

UserDto{
int id;
get\set}

我有一个方法可以称之为doSmth()。有没有办法让这个方法与这两个类一起作为输入参数工作,如 doSmth(User user)\doSmth(UserDto user) 而不会重载它?

我试过使用泛型,比如

    public <T extends User & UserDto> void doSmth(T user){
  System.out.println(user.getId);
}

但它不起作用。例如方法做简单的事情,比如

标签: javagenerics

解决方案


有。创建一个IUser声明方法的接口anOperation,使两者都User实现UserDto相同的接口,然后doSmth(IUser)可以接受两者UserUserDto调用方法anOperation


推荐阅读