当前位置: 首页 > 知识库问答 >
问题:

Java省略号(...)将对象数组包装在另一个父对象中

凌鹏程
2023-03-14

我正在尝试使用以下代码段打印一些日志。这不会产生所需的输出。

Object[] arguments = new Object[] {"Atul", "Kumar"};
Object[] parent = new Object[1];
parent[0] = arguments;
String log = MessageFormat.format("Error : {0}, due to {1}", parent[0]);
System.out.print(log);
//prints : Error : [Ljava.lang.Object;@54bedef2, due to {1}

但是,下面的代码工作正常。

Object[] arguments = new Object[] {"Atul", "Kumar"};
String log = MessageFormat.format("Error : {0}, due to {1}", arguments);
System.out.print(log);
//prints : Error : Atul, due to Kumar

我认为parent[0]还表示arguments对象[]。为什么第一个代码段不起作用?请建议。

在调试时,我看到MessageFormat.format(String模式,Object...参数)将Obeject[]包装在长度为1的父Object[]中。

共有1个答案

朱炜
2023-03-14

在第一个对象中,parent存储Object,因此当给定parent[0]作为一个对象时,使用{0}格式的一个元素,并使用数组的toString

在第二种情况下,赋予格式的是一个Object[],因此它可以用varags在多个值上展开...

要使第一个对话框正常工作,您需要明确地告诉每个框中存储的内容,这里是Object[]

Object[] arguments = new Object[]{"Atul", "Kumar"};
Object[][] parent = new Object[1][];
parent[0] = arguments;
String log = MessageFormat.format("Error : {0}, due to {1}", parent[0]);
System.out.println(log);

// Error : Atul, due to Kumar
 类似资料:
  • 问题内容: 我有两个对象数组。我想基于PermissionObj过滤数据。 这是即将形成的数据库。这是permissionObj中的子数组的数组。 这是静态数据。我想比较基于PermissionObj的数据。 我正在尝试基于 对象 的 PermissionObj数组 过滤 对象 的 数据数组 。这是我尝试的代码。 如果PermissionObj值将与data值匹配。然后显示数据。 我接受的输出将是

  • 假设我有以下内容 这会产生如下所示的数组 我可以做一个级别,但是多个杠杆怎么样?我的伪代码类似于 但是对于无限的势能级,我该怎么做呢?

  • 问题内容: 在我目前正在从事的一个项目中,我遇到了一个角度异常: 在寻找解决方案的搜索中,我直接在浏览器中输入了Web服务的URL,但令人惊讶的是,我没有收到预期的数组。 Web服务类: 当我输入网址时,我希望看到带有JSON对象的JSON数组: 但是,相反,我收到的JSON对象的属性与我期望的JSON对象相同,没有任何数组: 所以我想知道为什么没有数组,当我添加另一个Clazz对象时会发生什么。

  • 问题内容: 假设我有一个像这样的数组 但我想将其转换为这样的对象: 能做到吗?我尝试过的所有方法都只会获得最后一个键值对。 问题答案: 如果您使用的是ES6或更高版本:

  • 现在我有了新阵列 现在,现有的_array和新的_array都有名称值“b”,我希望它从新数组中移除

  • 考虑下面的控制器方法, 假设上面endpoint的响应对象如下所示, 现在我试图实现的是将整个响应对象包装在另一个对象下,因此最终响应应该看起来像, 所以问题是,我不想在每个控制器方法下创建一个函数来向这个包装器对象发送值。我的问题是,在Spring框架中是否有可能允许我在某个地方创建一个全局包装器函数,它会自动选择它并包装来自控制器的响应?