加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在java方法中传递数组作为参数?

发布时间:2020-12-14 05:18:40 所属栏目:Java 来源:网络整理
导读:码: Object[] a={ myObject};someMethod(Object ...arg); 当我尝试: someMethod ( {myObject} ); 我在Eclipse中收到错误. 但当: someMethod ( a ); 一切都好. 为什么这个差异? 谢谢. 解决方法 因为{myObject}语法是 special syntactic sugar,只适用于初
码:
Object[] a={ myObject};
someMethod(Object ...arg);

当我尝试:

someMethod ( {myObject} );

我在Eclipse中收到错误.

但当:

someMethod ( a );

一切都好.
为什么这个差异?
谢谢.

解决方法

因为{myObject}语法是 special syntactic sugar,只适用于初始化数组变量.这是因为自己的作业缺少类型信息;但是在赋值的特殊情况下,类型从变量中完全推断出来.

在第一个例子中,编译器知道你正在分配一个(这是一个Object []),所以这个语法是允许的.在后者中,您不是初始化一个变量(并且由于Java类型推断的弱点,甚至不能完全解决参数分配的上下文).所以它不知道数组应该是什么类型,即使它可以明确地确定这是你想要做的(而不是例如声明一个块).

调用

someMethod ( new Object[] { myObject } )

如果要在不使用变量的情况下就地定义数组就行了.

虽然上面的问题回答了你的问题,我注意到你所调用的方法是varargs而不是明确要求一个数组参数.所以在这种情况下你可以简单地打电话

someMethod(myObject);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读