为了账号安全,请及时绑定邮箱和手机立即绑定

Java数组初始化,这三种方式有什么区别?

Java数组初始化,这三种方式有什么区别?

天涯尽头无女友 2019-03-21 18:19:35
形式1:Object[] params = null; params = {1, 2, 3, 4};形式2:Object[] params = {1, 2, 3, 4};形式3:Object[] params = new Object[]{1, 2, 3, 4};1.为什么第一种形式就是错的(编译阶段就报错),而第二种就可以呢?(第三种很显然)2.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

形式1

Object[] params = {1, 2, 3, 4};

这种声明方式其实只是Java初始化数组的语法糖,所谓语法糖只是为了方便码农,在实际执行中,Java会把它变成形式3,即

Object[] params = new Object[]{1, 2, 3, 4};

而Java并没有提供类似形式2的这种语法糖,所以这样使用是非法了。


查看完整回答
反对 回复 2019-04-24
?
隔江千里

TA贡献1906条经验 获得超10个赞

Object[] params = null;

params = new Object[]{1, 2, 3, 4};

A. 语法规定楼主不需要太纠结

B. 如果你预先知道数组元素,使用第Object[] params = {1, 2, 3, 4};声明数组代码更简洁,没有更优的说法。


查看完整回答
反对 回复 2019-04-24
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

第一种的声明方式就是不正确的
应该是Object[] params = new Object[length]

我常用的是第二种


查看完整回答
反对 回复 2019-04-24
  • 3 回答
  • 0 关注
  • 589 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信