java - 在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);
}
但它不起作用。例如方法做简单的事情,比如
解决方案
有。创建一个IUser
声明方法的接口anOperation
,使两者都User
实现UserDto
相同的接口,然后doSmth(IUser)
可以接受两者User
并UserDto
调用方法anOperation
推荐阅读
- javascript - 是否存在 node 的 window.performance 的替代方法(如果存在)?
- c++ - 当没有 constexpr 的替代品时,是否有任何轻量级的真实示例?
- angular - Chrome SameSite:身份服务器 4(代码流)+ Web API Core 3.1 + Angular 8
- git - 推送提交后如何删除文件?
- typescript - 控制台输出根据定义类型改变行为
- angular - Angular/NgRx - 效果:Angular 扩展面板关闭时取消订阅和轮询
- google-chrome-extension - 如何删除对 Google Chrome 扩展程序的评论
- ssl - Node express.js heroku 和 Namecheap SSL 问题
- spring-kafka - Spring Kafka:非事务性生产者回调处理
- python - Pygame - 黑屏显示