Java中为什么不能在声明数组大小的同时初始化

hml1006 2010-04-11 05:09:34
String s[]=new String[] {"Zero","One","Two","Three","Four"};正确
String s[]=new String[5] {"Zero","One","Two","Three","Four"};错误

原因?????????
...全文
770 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxxj008 2010-04-14
  • 打赏
  • 举报
回复
你初始化的时候已经规定了大小了啊,干啥还要在给个数字呢?
curtguo 2010-04-14
  • 打赏
  • 举报
回复
我觉得它的规定还是有道理的。因为一般语法的定义追求精确和简洁两大特性,如果说较少的代码能表达清楚意思,那就尽量不要再添加辅助的定义了。这是我个人的理解,希望对你有帮助。
hml1006 2010-04-14
  • 打赏
  • 举报
回复
大概是防止new时大小和{....}里的大小不匹配
xiaocainiaoyuan 2010-04-12
  • 打赏
  • 举报
回复
这种问题越想就越想不通,毕竟我们是用这门语言,不是研究这门语言的...
davis_rly 2010-04-12
  • 打赏
  • 举报
回复
自己理解是语法规定吧 反正只要通过一种方式知道它的数组大小便可
dobe1987 2010-04-12
  • 打赏
  • 举报
回复
这就是语法
TillPerfect 2010-04-12
  • 打赏
  • 举报
回复
的确多次一举,这样会使编译器很为难。它不知道这个长度取哪个值。
总不能让人家去判断,方括号里的长度是否等于后面花括号里面的长度吧?如果不等,你要人家再做什么处理呢?抛异常?太折腾,估计就采取这个规定,不许我们这么干了
young_smile 2010-04-12
  • 打赏
  • 举报
回复
一般不那么干。
java_zhengjd 2010-04-12
  • 打赏
  • 举报
回复
语法规范,好像有点钻牛角尖。
jacky花园 2010-04-12
  • 打赏
  • 举报
回复
java的静态初始化和动态初始化的规范
unknownlogic 2010-04-12
  • 打赏
  • 举报
回复
别整天围着语法转悠
YangWenChaoX 2010-04-12
  • 打赏
  • 举报
回复
lz,你想多了!
zings 2010-04-12
  • 打赏
  • 举报
回复
我没深究过。。mark ..
soooooga 2010-04-12
  • 打赏
  • 举报
回复
String s[]=new String[5] {"Zero","One","Two","Three","Four"};错误

有你这样写的么??
String s[]={"Zero","One","Two","Three","Four"};
to_heaven 2010-04-12
  • 打赏
  • 举报
回复
多此一举吧,String s[]=new String[5] {"Zero","One","Two","Three","Four"}; 5没有什么意义。 如果是要限制数组大小, 可在声明后用Assert.isTrue(5, s.length)检测下。
soton_dolphin 2010-04-12
  • 打赏
  • 举报
回复
String s[]=new String[5] {"Zero","One","Two","Three","Four"};错误

STRING的长度是通过括号里的元素的数量决定的,这个很符合一般人的逻辑思维啊,试想一下这种情况

String s[]=new String[5] {"Zero","One","Two","Three","Four",“five","six"}

如果程序员犯了这么个小错误,那编译器就无法判断数组的长度了
keeya0416 2010-04-12
  • 打赏
  • 举报
回复
记着就行
内部语法
也没什么别的意思
像 C# 就可以这么干 也没见人家有啥不妥
luozhangwen 2010-04-12
  • 打赏
  • 举报
回复
因为你以及在后面给它隐式的声明大小了.

church88 2010-04-12
  • 打赏
  • 举报
回复
你不觉得多此一举嘛,这样用什么特殊的用意思嘛?
要不就一开始就指定声明的大小,或者直接初始数据,完了JVM就知道你数组的大小了,干嘛非要String s[]=new String[5] {"Zero","One","Two","Three","Four"};这样呢。
cwjieNo1 2010-04-12
  • 打赏
  • 举报
回复
语法规定,这样更好:
String s[]={"Zero","One","Two","Three","Four"};
加载更多回复(2)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧