为什么可以将 int[] 转换为 Object,但不能转换为 Object[]?

2024-03-01

所以这有效:

int i;
Object a  = (Object) i;
int[] t;
Object b = (Object) t;
String[] s;
Object[] t = (Object[]) s;

但这并不:

int[] t;
Object[] z = (Object[]) t;

总而言之,我得到了第一部分(拳击),但我发现第二部分不起作用是非常不直观的。是否有具体原因(除了 String 继承自 Object 和 int 不继承自 Object 之外)?

Edit:

为了完善我的问题,这也有效:

int a = 2;
int b = 3;
int c = 4;
int d = 2;
Object[] o = new Object[] {a,b,c,d};

但以下情况则不然:

int[] t = (int[]) o;

令人惊讶的是,你在 String 上遇到了同样的问题:

String sa = "a";
String sb = "b";
String sc = "c";
String sd = "d";
Object[] so = new Object[] {sa,sb,sc,sd};
String[] st = (String[]) so;

在最后一行产生类转换异常。这仍然有效:

Object[] sy = (Object[])new String[]{sa,sb,sc,sd};
String[] sz = (String[]) sy;

A int[]是一个数组原语而且也是一个对象本身。它不是一个对象数组

数组不支持自动装箱。您需要选择正确的数组类型来开始,而不是在运行时转换它。

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

为什么可以将 int[] 转换为 Object,但不能转换为 Object[]? 的相关文章

随机推荐

  • 通过 PEAR 安装 phpunit 后如何获得 phpunit.bat?

    我需要 phpunit bat 来配置我的 NetBeans IDE 我在用着wamp http www wampserver com 我只需使用以下说明通过 pear 安装 phpunit 在开始使用 PEAR 之前 请从以下位置下载最后
  • 如何找到我的 MySQL URL、主机、端口和用户名?

    我需要找到我的 MySQL 用户名 当我打开 MySQL 命令行客户端时 它只询问我的密码 我不记得我的用户名了 为了与 JDBC 连接 我需要 URL 主机和端口号 我在哪里可以找到所有这些 如果您已经登录命令行客户端 请尝试以下操作 m
  • 在 Geodjango + Postgres 中存储圆

    希望在 geodjango 字段中存储一个圆 以便我可以使用 geodjango 查询 contains 来查找圆中是否有一个点 类似于使用 PolygonField 可以完成的操作 目前将其存储为十进制半径和 GeoDjango 点字段
  • 如何使用 Google Calendar API v3/Google API 客户端库显示*所有*可用日历的列表?

    我一直在尝试使用 PHP 访问 Google Calendar API v3 最初 我想简单地列出我可以通过 API 调用访问的用户日历 为此 我下载了 Google API PHP 客户端库 并尝试使用以下代码 经过我的改编 来自http
  • IIS 7.5 上的 MVC5 路由错误 (404.0) 错误

    一个古老的故事是 在开发机器上一切正常 但在主机服务器上却不行 HTTP 错误 404 0 未找到 模块IIS 网络核心 通知地图请求处理器 处理程序静态文件 错误代码0x80070002 尝试通过添加在开发机器上产生相同的错误
  • 使用参数时“Between”运算符生成错误的查询计划

    我有一个简单的日期表 Date DateID 其中包含 1900 年 1 月 1 日到 2100 年 12 月 31 日之间的日期列表 当使用从表中选择时between运算符和硬编码参数值 我得到了一个正确的查询计划 其中有 3 个估计行与
  • 使用多个参数注册 DbContext

    我正在尝试将 TenantProvider 注入 DbContext public class AppDbContext IdentityDbContext
  • Django 装置使用默认值保存

    我正在使用 Django 1 7 但我的装置有问题 我希望 Django 使用默认值或使用save 方法来创建未指定的值 这是我当前的对象 File uuidable py import uuid from django db import
  • Java中共享内存的任何概念

    AFAIK Java中的内存是基于堆的 内存是动态分配给对象的 并且没有共享内存的概念 如果没有共享内存的概念 那么Java程序之间的通信应该是很耗时的 在 C 中 与其他通信模式相比 通过共享内存进行进程间通信更快 如我错了请纠正我 另外
  • 访问“仅差异”ZFS 快照

    有没有办法挂载仅包含特定于快照的文件的虚拟分区 我知道隐藏的 zfs 目录 但它包含快照时的所有文件 我的目标是使差异备份更快 提前致谢 greg 尽管安德鲁的建议zfs send如果您只是想 这是使用差异快照的正确方法see差异并在您自己
  • 无法将 python 配置为代理

    与我的问题相关的早期帖子都无法为我提供解决方案 所以我在一个新线程中发帖 我通过大学中经过身份验证的代理连接到互联网 所以在浏览器中 我输入我的用户名密码 但是我无法在 python 中下载数据 我在 python 2 7 中输入以下 4
  • 有没有办法将 Google colab 环境保存到某个地方并重新使用它?

    我尝试过 virtualenv 和 conda 它已成功安装 但我无法激活虚拟环境 然后我考虑将 Colab 环境 我的意思是已安装的库 保存到某个地方 也许是 Google Drive 然后我可以重用它 是否可以 对于提问者以及因同一问题
  • 您更喜欢哪种方法来改进 Maven 项目的增量构建?

    我将优化构建项目的时间 最耗时的事情之一是项目的编译 由于这里特别提到的 Maven 的已知问题 Maven增量构建 https stackoverflow com questions 6281699 maven incremental b
  • 与alignas语法作斗争

    我正在尝试使用alignas对于属于类成员的指针 坦率地说 我不确定应该把它放在哪里 例如 class A private int n alignas 64 double ptr public A const int num n num p
  • 使用 mat-paginator 和 mat-table 使用可观察数组作为数据源

    我使用可观察数组作为数据源 这工作正常 只是我现在无法弄清楚如何使用分页器 下面是html和ts html table class mat elevation z8 table
  • Rails 使用哈希数组查找记录

    使用字段选择 按字段对查询 in clause 我有一个哈希数组 如下所示 product id 7629 group id 4 product id 8202 group id 3 我想返回的是所有的记录Items与数组中的字段对匹配的表
  • Android AutoCompleteTextView 在横向模式下显示对象信息而不是文本

    我正在使用带有 AutoCompleteTextView 的自定义适配器 它在模拟器和我的平板电脑上运行良好 但是 我的手机在横向模式下出现问题 在此模式下显示的自动完成提示是对象信息而不是文本 但是 当我选择任何项目时 字段会正确填充相应
  • Python 服务发现:在本地网络上公布服务

    我有一个 服务器 python 脚本在其中一台本地网络计算机上运行 它等待客户端连接 并传递给它们一些要做的工作 服务器和客户端代码都已编写 并且正在按预期工作 问题是 该服务器可能从本地网络中的任何机器上运行 因此我无法在脚本中对地址进行
  • 如何在网页中显示本地图片?

    我需要在网页上显示图片而不上传它 就像是 img src 怎么做 您可以使用轻松做到这一点FileReader readAsDataURL 用户选择一张图片 您无需上传即可显示它 欲了解更多信息 请参阅https developer moz
  • 为什么可以将 int[] 转换为 Object,但不能转换为 Object[]?

    所以这有效 int i Object a Object i int t Object b Object t String s Object t Object s 但这并不 int t Object z Object t 总而言之 我得到了第