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

前端之家收集整理的这篇文章主要介绍了如何在java方法中传递数组作为参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
码:
Object[] a={ myObject};
someMethod(Object ...arg);

当我尝试:

someMethod ( {myObject} );

我在Eclipse中收到错误.

但当:

someMethod ( a );

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

解决方法

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

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

调用

someMethod ( new Object[] { myObject } )

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

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

someMethod(myObject);

猜你在找的Java相关文章