如何在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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |