java - 对象...对象[] 和格式
问题描述
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子:
public static void main(String[] args) {
before("one");
}
public static void before(Object... datas ) {
go(1, datas);
}
public static void go(Object...params ) {
System.out.println(MessageFormat.format("{0} is the same as {1}", params));
}
我想要这个:"1 is the same as one"
但是得到了这个"1 is the same as [Ljava.lang.Object;@4554617c"
似乎问题出在我的参数中,我想要一个像这样的数组 [1, "one"] 而是将 "one" 封装在一个数组中。我想要一些“扁平”的东西。有任何想法吗 ?
谢谢
解决方案
你传递给go
的实际上是 1 和包含“一”的数组,这就是你得到它的原因[Ljava.lang.Object;@4554617c"
。您可以将方法更改为:
public static void before(Object... datas) {
Object[] arr = Stream.concat(Stream.of(1), Arrays.stream(datas))
.toArray();
go(arr);
}
推荐阅读
- javascript - 可以在 webpack.config.js 中链接节点模块文件吗?
- wordpress - 在 Wordpress 上切换自定义字段的大小写
- kotlin - 实现可重新分配的属性委托的最佳方法
- python - 在 Python 中使用全局热键中断 while 循环
- karate - 空手道表达式检查数组中是否存在值
- excel - 如何从确切的单元格中检索所有六位数字?
- angular - 重复选择
- sql - SQL Server:分组依据,表达式和分组依据失败
- json - JSON RPC 2.0:请求对象上的额外字段是否违反规范?
- ios - 如何使用带有 MVVM 的模型 NSObject 类重新加载 TableVIew