【发布时间】:2014-04-09 13:13:50
【问题描述】:
我有一个方法,它接受 int[] 参数。我想给它传递一系列短裤。但我得到的只是“不兼容的类型:short[] 无法转换为 int[]”。这是为什么? 一个例子:
short[] arr = new short[2];
arr[0] = 8;
arr[1]=9;
example(arr);
example(int[] anArray){
}
据我所知,short to int 只是在扩大,所以应该自动进行类型转换,不是吗? 那怎么通过呢? 谢谢。
【问题讨论】:
-
您的问题已经得到了一些很好的 Java 特定答案。但是您认为
short[]和int[]会相互关联,因为short和int似乎是相关的这一事实是完全合理的。如果您想了解(方式)更多关于这类问题的信息,请从en.wikipedia.org/wiki/… 开始。 -
从技术上讲,Java 可能会处理这个问题,因为数组(几乎)是成熟的对象,因此读/写数组元素的操作知道(或可能是)实际数组元素类型。所以至少部分答案是C不能处理同样的场景,Java是仿照C的。这样的改变是好是坏很难判断。 (但它在 Java 中永远不会改变——也许是一些后续语言。)
标签: java arrays parameter-passing