该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-18
最后修改:2011-04-19
看公司的平台代码,看到这样一个方法 public DataSet query(String sql, Object... para){ //opreation } Object... param 第一次看到这样的用法,难道这是公司自定义的数据类型? 在群里问了句谁知道? 一个新人过来,给我做了个事例,说这是java的新特性== 变长数组。 直接让我汗颜,自认为对java基础有较高掌握,但却没见过这样。。。
学习: class Hello{ public static void generalUse(int []args){ for (int i = 0;i < args.length ; i++ ){ System.out.println(args[i]); } } public static void newBehaviour(int... args){ for (int i = 0;i < args.length ; i++ ){ System.out.println(args[i]); } } public static void main(String[] args) { //int[] a = {}; //test1 generalUse(); //不能通过编译, newBehaviour(); } }
通过测试看到,当参数为(int... arg) 与传统的(int [] args) 在调用时,但不传入参数时, 传统的使用将不能通过编译:
Hello.java:18: 无法将 Hello 中的 generalUse(int[]) 应用于 () generalUse(); ^ 1 错误
而新特性,并不报错。 这样的使用是java的使用更加灵活。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-18
LZ。。莫非一直在用 1.4 ?
|
|
返回顶楼 | |
发表时间:2011-04-18
liuyupy 写道 LZ。。莫非一直在用 1.4 ?
估计是了…… |
|
返回顶楼 | |
发表时间:2011-04-19
悲催 我都不忍心说你了
|
|
返回顶楼 | |
发表时间:2011-04-19
不好意思 在下学识 短浅虽用1.6+有一年多了 但一直没遇到这样的用法 现在知道了
|
|
返回顶楼 | |
发表时间:2011-04-19
果然很杯具…估计楼主被新同事暗地里bs了。
|
|
返回顶楼 | |
发表时间:2011-04-19
hibernate 和 ejb 生成的方法中很多都是这样的写法。
不过自己还真是没这样写过。 |
|
返回顶楼 | |
发表时间:2011-04-19
这种特新,还是少用点好,调用这样的方法,JVM每次都会new1个object数组来保存方法中的参数,对性能有影响,
|
|
返回顶楼 | |
发表时间:2011-04-19
java的反射你可听说
|
|
返回顶楼 | |
发表时间:2011-04-19
很明显 估计很多人都是了解有这么个东西,但是实际中 都没用过。。。
|
|
返回顶楼 | |