无法施展通用套装?

2023-12-01

我今天遇到一个有趣的问题。考虑下面的代码

public static class Parent {}
public static class Child extends Parent {}

Set<Child> childs = new HashSet();
Set<Parent> parents = (Set<Parent>)childs; //Error: inconvertible types

Parent parent = (Parent)new Child(); //works?!

为什么这样的演员阵容不起作用?我希望由于泛型的各种规则,隐式转换不起作用,但为什么显式转换不能起作用?


演员阵容不起作用,因为Java 泛型不是协变的.

如果编译器允许这样做:

List<Child> children = new ArrayList();
List<Parent> parents = (List<Parent>)children;

那么这种情况下会发生什么呢?

parents.add(new Parent());
Child c = children.get(0);

最后一行将尝试分配Parent to a Child——但是一个Parent 不是一个Child!

All Child are Parent (since Child extends Parent)但所有Parent不是Child.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法施展通用套装? 的相关文章

  • 在文本文件中写入多行(java)

    下面的代码是运行命令cmd并使用命令行的输出生成一个文本文件 下面的代码在 Eclipse 的输出窗口中显示了正确的信息 但在文本文件中只打印了最后一行 谁能帮我这个 import java io public class TextFile
  • 如何创建一个显示 Spinners 的 x 和 y 值的表格?

    我想创建一个位于图表右侧的表格 其中显示 2 列 x 和 y 值已输入到xSpin and ySpin旋转器 我已经画了一张我想要桌子放置的位置的图 我尝试过在网格窗格布局中使用文本框来创建表格并将值直接输入到文本框网格中 但是我无法将它们
  • Java:迭代 Collection 的最佳方法(此处为 ArrayList)

    今天 当我看到一段我已经使用了数百次的代码时 我很高兴地开始编码 迭代集合 此处为 ArrayList 出于某种原因 我实际上查看了 Eclipse 的自动完成选项 这让我想知道 在什么情况下以下循环比其他循环更好使用 经典的数组索引循环
  • org.apache.sling.api.resource,version=[2.3,3) -- 无法解析

    您好 我无法访问我的项目内容 我已经上传了从 CQ 访问内容所需的所有包 我唯一能看到的是 org apache sling api resource version 2 3 3 无法解析 这是否是异常的原因 如果是 请告诉我如何解决 中Q
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • Cassandra java驱动程序协议版本和连接限制不匹配

    我使用的java驱动程序版本 2 1 4卡桑德拉版本 dsc cassandra 2 1 10cql 的输出给出以下内容 cqlsh 5 0 1 Cassandra 2 1 10 CQL spec 3 2 1 Native protocol
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • Netty:阻止调用以获取连接的服务器通道?

    呼吁ServerBootstrap bind 返回一个Channel但这不是在Connected状态 因此不能用于写入客户端 Netty 文档中的所有示例都显示写入Channel从它的ChannelHandler的事件如channelCon
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的

随机推荐

  • 访问:Shell cmd 打开MDB

    我一直在使用以下命令通过 VBA 打开另一个 MDB Access 文件 Shell cmd c Chr 34 strNewFullPath Chr 34 vbHide strNewFullPath 是 MDB 文件的完整路径 使用 Acc
  • Talend - 限制处理的行数

    我正在使用 Talend ETL 在两个 Salesforce 组织之间传输数据 我正在尝试运行初步测试以确保一切设置正确 有没有办法限制传输的行数 数据库有超过 50 000 行 我只想发送超过 15 或 20 行 谢谢 在 Talend
  • 使用 OAuth2 从命令行访问 App Engine 应用程序?

    我有一个 App Engine 站点 其 URL 被标记为login required在 app yaml 中 我需要从命令行脚本访问此 URL 既然 OAuth2 已取代 ClientLogin 我该怎么做 之前的问题 最终都使用了Cli
  • Powershell - 错误 CS0246:找不到类型或命名空间名称“ICertificatePolicy” - gitlab 管道失败

    我正在尝试重用这个执行部署后烟雾测试的 powershell 脚本 当我在构建服务器上本地运行时 该脚本工作得很好 但是当我尝试通过我的 gitlab 管道运行时 它会失败并出现错误 add type 3 36 错误 CS0246 找不到类
  • 如何添加新的分组变量

    如何根据日期添加另一个变量作为分组变量 这是我的数据 df lt tibble id c rep 1 8 rep 2 3 col structure c 19031 19031 19031 19031 19072 19072 19072 1
  • 购物车 - 购物车中的商品数量 CSS

    正如我们在流行网站上看到的那样 网站上有一个小图标 top right的购物车图标 我必须在我的 ASP NET 网页中使用类似的东西 如何将此图标置于购物车图标的右上角 购物车的图标是普通的引导程序图标 购物车中商品数量的 css 如下
  • 如何使用 XCUITest 测试 UIImageView 是否包含具有特定名称的图像?

    我有一个 collectionView 它有一堆单元格 每个单元格中包含一个 UIImageView 我想测试每个单元格中 imageView 的图像是否与正确的图像名称匹配 在生产代码中 我向 UIImageView 示例添加了一个辅助功
  • 在ios swift中将firebase数据添加到数组中

    我在从 firebase 数据库获取数据并将其添加到数组中时遇到问题 该方法的打印输出获取新报价显示数组为空 但屏幕截图显示标签已在获取新报价方法 怎么会发生这种事 事件中是否存在延迟获取新报价导致这种情况的方法 此外 标签是如何随着第四次
  • 在Python中从json中获取多个键

    我的文件中有以下 json 结构 Date timevalue Org b4256282 Referer somevalue Date timevalue Org b4257482 Referer somevalue Date timeva
  • 如何在同一 Play 控制台商店列表中分发 Android 手机+wearOS 项目

    我有一个手机项目 以及一个手表 wearOS 项目 90 的代码在两个项目之间共享 我想将它们打包并分发到同一个商品详情中 注意 所有共享代码都存在于公共库模块中 我尝试将手表项目作为模块添加到我现有的手机项目中 但是在生成要发布的应用程序
  • 如何将 UIPageControl 与 iCarousel 一起使用?

    我在 icarousel 中有一些图像 约20张图片 我想在一页上放 5 张图片 图像像素或图像位置没有问题 如何在没有ScrollView的情况下使用uipagecontrol 例如 能够使用一些委托方法 等等 carousel type
  • Node.js:确定修改时的文件大小

    我正在 Node js 中查看一个文件 并希望在每次更改时获取该文件的大小 如何做到这一点fs watchFile 这就是我目前正在做的事情 fs watchFile file function curr prev determine fi
  • AttributeError:模块“pyparsing”没有属性“downcaseTokens”rasa

    我在使用 rasa 时遇到问题 因为出现以下错误 我无法跑步或训练或做任何事情 回溯 最近一次调用最后一次 文件 c users dell anaconda3 envs rasanew lib runpy py 第 193 行 位于 run
  • 将子控制器添加到表视图单元格时不会调用 viewWillAppear

    当我将子视图控制器添加到表视图单元格时 它看起来像视图将出现对于子视图控制器不被调用 仅查看是否出现 表视图控制器方法 override func tableView tableView UITableView cellForRowAtIn
  • 删除具有相似前缀的重复行

    我需要删除文件中具有重复前缀的类似行并保留唯一的行 由此 abc def ghi abc def ghi jkl one abc def ghi jkl two 123 456 123 456 789 xyz to this abc def
  • 执行动态加载的JS文件

    我理解JS是单线程 同步执行的 因此 当我将文件添加到浏览器头标记时 该文件一遇到就会执行 然后它转到下一个脚本标记并执行该文件 我的问题是当我将 js 文件动态添加到 HTML head 标记时 浏览器如何执行该文件 是不是像当前执行的地
  • 如何用CSS将矩形图像“裁剪”成正方形?

    我知道用 CSS 实际修改图像是不可能的 这就是为什么我将裁剪放在引号中 我想做的是拍摄矩形图像并使用 CSS 使它们显示为正方形而不扭曲图像 我基本上想把这个 进入这个 没有包装器的纯 CSS 解决方案div或其他无用的代码 img ob
  • 在启动时设置默认的 matlab 路径

    我的团队正在尝试标准化我们的 Matlab 路径 以便每个人都有相同的路径 我有一个我们都应该拥有的默认 matlab 路径列表 因此 我们希望有一个在 matlab 打开时运行的脚本 以确保我们的路径设置为默认的 matlab 路径 因此
  • 如何使用 PHP 从 HTML 代码中删除多余的
    标签?

    我正在用 PHP 解析一些凌乱的 HTML 代码 其中有一些冗余标签 我想清理一下它们 例如 br br br br 我如何使用 preg replace 替换类似的东西 br br 换行符 空格以及它们之间的差异 br br and br
  • 无法施展通用套装?

    我今天遇到一个有趣的问题 考虑下面的代码 public static class Parent public static class Child extends Parent Set