java - Java 泛型类型转换
问题描述
我有一个关于 Java 泛型的问题。假设我有以下方法:
public <U> Logger<U> flatMap(Function<? super T, ? extends Logger<? extends U>> fMapper) {
LoggerImpl<? extends U> updatedLogger = (LoggerImpl<? extends U>) fMapper.apply(this.item);
...
如何使用通配符 < 解释上述类型转换?扩展 U>? 使用 that 和 just 有什么区别LoggerImpl<U> updatedLogger = (LoggerImpl<U>) fMapper.apply(this.item);
?
解决方案
基本上LoggerImpl<? extends U>
说的是它可以是 U 或 U 的任何子类,如果你必须LoggerImpl<U> updatedLogger
使用 U 并且子类将不起作用。
希望我有所帮助!
推荐阅读
- ffmpeg - 删除重复帧
- typescript - 如何在 TypeScript 中动态创建映射类型
- mysql - SQL中的字符串到整数转换是自动的吗?
- postgresql - Postgres 远程访问
- python - 如何将有理数或无理数输入 argparse?
- c# - Intellisense 在 C# 中使用 Visual Studio Code 进行可用的“使用/导入”
- javascript - 在 JavaScript 中使用 Array.forEach 进行迭代
- ruby-on-rails - 如何将 Ruby on Rails 模型仅支持 ElasticSearch
- docker - 无法在 jenkins docker-agent 中使用 gcloud
- javascript - 防止触摸设备上的 mousemove 事件