锯齿状阵列与阵列状阵列

问题描述

| 您如何看待它们之间的区别?
new object[][] { new object[] { \"1\" },new object[] { \"2\" },new object[] { \"3\" } }

new object[] { new object[] { \"1\" },new object[] { \"3\" } }
我看到的唯一区别是方法的重载参数。
static void Arr(object[][] oa)

static void Arr(object[] oa)
也许记忆的效率?     

解决方法

        第一个是类型安全的;第二个不是。 您的两个数组都完全相同,除了第二个数组的类型为包含
object
s,而第一个数组必须包含
object[]
s(数组)。因此,您可以编写
new object[] { DateTime.Now,new object[] { \"1\" },new object[] { \"2\" },... }
而你不能写
new object[][] { DateTime.Now,... }
...因为
DateTime.Now
不是
object[]
。 在实践中,您应该尝试使用限制性最强的类型,以防止出错。 对于您的情况,应使用ѭ8来确保不能将ѭ6放入内部数组中。     ,        不同之处在于,在第二个示例中,数组中可以有类型为
object
的元素,而在第一个示例中,您可以具有
object[]
个元素。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...