真的需要通配符泛型吗?

2024-01-28

例如:

    public String add(Set<?> t){
    ...;
    }



    public <T> String add(Set<T> t){
    ...;
    }

第一个使用通配符泛型;第二种是泛型方法的范式。 有什么不同?

在什么情况下我们需要通配符泛型,而不是普通形式的泛型?


这是需要通配符的情况。该方法需要一个List<List<?>>,这是一个列表的列表。该方法可以向其中添加不同组件类型的列表:

public void foo(List<List<?>> t) {
    t.add(new ArrayList<String>());
    t.add(new ArrayList<Integer>());
}

您无法使用不带通配符的泛型类型参数来执行此操作。例如,以下内容不起作用:

public <T> void foo(List<List<T>> t) {
    t.add(new ArrayList<String>()); // does not compile
    t.add(new ArrayList<Integer>()); // does not compile
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

真的需要通配符泛型吗? 的相关文章

随机推荐

  • 上传大量文件时节点脚本导致系统冻结

    我有一个脚本 它是一个更大的电子程序的一部分 该脚本是一个循环 它从应用程序的临时目录中读取文件 然后将所有文件上传到 S3 这对于小型文件集效果很好 但对于较大的文件集 它会导致计算机冻结并重新启动并导致系统崩溃 Macbook pro
  • 如何使用新的 xml 属性并兼容旧版 Android 版本?

    我已经向我的应用程序添加了小部件功能 该功能与旧版本的 Android 回到 1 6 兼容 Android 3 1 中的小部件支持 xml 标签调整大小模式这是一个非常有用的功能 我希望允许用户调整他们的小部件的大小 但我仍然希望向后兼容
  • Flutter:我想在运行时将字体应用于整个应用程序文本

    我的应用程序中有语言选择设置 根据语言选择英语或阿拉伯语 我想使用不同的字体系列 我在 MaterialApp 内完成了它 但它不会实现我的目标 override Widget build BuildContext context retu
  • Phonegap/Cordova 构建错误 - Apple Mach-O 链接器错误:没有这样的文件或目录:libCordova.a

    创建新的 Cordova 2 1 0 项目并使用以前的 PhoneGap 应用程序中的一些代码更新 www 文件夹后 我收到错误 clang error no such file or directory Users peterbanjo
  • NoSQL 数据库中的全文搜索 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这里有人有部署真正的在线系统的经验吗 该系统在任何 NoSQL 数据库中进行全文搜索 例如 全文搜索在 MongoDB Riak 和
  • PullToRefreshListView$InternalListViewSDK9 中的 IllegalStateException

    我在应用程序的两个活动中使用 PullToRefresh 库 我知道 这个库已被弃用 但它非常有用 它不仅可以处理来自顶部的刷新手势 还可以处理来自底部的刷新手势 但它有一个问题 应用程序很少因以下日志而崩溃 java lang Illeg
  • 如何在 Java 中格式化字符串

    原始问题 但如何格式化这样的字符串 第 1 步 共 2 步 通过使用 Java 替换变量 在 C 中这很容易 看一眼字符串格式 http download oracle com javase 6 docs api java lang Str
  • 将 float 转换或转换为 nvarchar?

    我需要从数据类型 float 的一列中进行选择 并将其作为 nvarchar 插入到另一列中 我尝试投射它 cast Column Name as nvarchar 50 结果是9 07235e 009而不是 10 位数字 电话号码 有谁知
  • Java 中覆盖方法的更广泛的参数类型

    下面的代码破坏了什么面向对象原则 不是 Java OO 原则 而是通用 OO 原则 class GeneralArg class Arg extends GeneralArg class A public void test Arg a c
  • 如何从数据库服务器插入带有时间戳的 MongoDB 文档

    在 Oracle 中 我可以简单地这样做 INSERT INTO myTable VALUES someValue SYSTIMESTAMP 这会将两个值插入到 myTable 中 其中之一是基于数据库服务器时间的时间戳 对于 MongoD
  • Grails 挂在命令行上

    我刚刚下载了 Grails 2 0 1 创建了一个新项目 然后尝试按照文档添加 mysql 连接器 但 Grails 在命令提示符下挂起 没有任何消息 我尝试以详细和堆栈跟踪模式执行 但它什么也没打印 我尝试清理并重新执行 但所有 grai
  • Jenkins Pipelines:如何从共享变量脚本使用 withCredentials()

    我想用一个withCredentials 块在共享变量 vars 脚本中而不是直接在 Jenkins 管道中 因为这是特定库的较低级别语义 并且根据具体情况可能需要也可能不需要 然而 withCredentials 或者 至少 它的签名 似
  • 如何在 OpenCV + Visual C++ 中测量对比度

    以前的问题是 如何在 OpenCV 中选择最佳对比度的图像 但根据 Rook 的建议 我正在更改它 我将在我的项目中使用 OpenCV Visual Studio 2010 我只是想知道 OpenCV 如何让这对我来说更容易 我从视频中提取
  • SQL Server - 缺少索引 - 什么会使用索引?

    我正在使用 SQL Server 2008 我们正在使用 DMV 来查找丢失的索引 然而 在创建新索引之前 我试图找出哪个 proc query 需要该索引 我想要获得最多的信息 以便我可以对我的索引做出明智的决定 有时 SQL Serve
  • 将 List 转换为分隔字符串列表 [重复]

    这个问题在这里已经有答案了 可能的重复 从 List 返回字符串的最优雅的方式 https stackoverflow com questions 1334072 most elegant way to return a string fr
  • OpenCV Android 使用最大轮廓的边缘创建新图像

    我能够检测图像中最大的正方形 矩形 绿色 但是 我想将图像中检测到的最大正方形 矩形转换为新图像 存储在新的 Mat 中 这是该函数的返回图像 其上有最大的矩形 正方形 http img153 imageshack us img153 93
  • NodeJS 从后台进程读取 stdin

    我有一个在 Ubuntu 12 04 LTS 下作为服务运行的节点进程 它在 etc init 下有一个配置文件 该系统在连接了条形码阅读器的无头 x86 路由器板上运行 我需要做的是能够读取来自条形码阅读器的输入 其行为类似于 USB 键
  • 在 .NET Core 中使用 SHA-1

    在 dotnet core 中对字符串进行哈希处理时 我得到了奇怪的结果 我发现了这个类似的问题 使用 ASP NET Core 计算 SHA1 https stackoverflow com questions 35363358 comp
  • sqlite,从另一个表中的列更新列

    我目前正在处理更新的查询table1 state从数据中table2 state基于两个表中的城市字段 换句话说 当表 1 和表 2 中的城市字段匹配时 用表 2 中的州更新表 1 我遇到的问题是 当没有城市匹配时 会随机添加一个州 例如爱
  • 真的需要通配符泛型吗?

    例如 public String add Set gt 这是一个列表的列表 该方法可以向其中添加不同组件类型的列表 public void foo List