关于 method (Object ... params )

看公司的平台代码,看到这样一个方法

Java代码 

 收藏代码

  1. public DataSet query(String sql, Object... para){  
  2. //opreation  
  3. }  

  Object... param 第一次看到这样的用法,难道这是公司自定义的数据类型? 在群里问了句谁知道?

一个新人过来,给我做了个事例,说这是java的新特性== 变长数组。

直接让我汗颜,自认为对java基础有较高掌握,但却没见过这样。。。

学习:

Java代码 

 收藏代码

  1. class  Hello{  
  2.   
  3.     public static void generalUse(int []args){  
  4.         for (int i = 0;i < args.length ; i++ ){  
  5.                 System.out.println(args[i]);  
  6.         }  
  7.     }  
  8.   
  9.     public static void newBehaviour(int... args){  
  10.         for (int i = 0;i < args.length ; i++ ){  
  11.                 System.out.println(args[i]);  
  12.         }  
  13.     }  
  14.       
  15.     public static void main(String[] args) {  
  16.         //int[] a = {};  
  17.         //test1   
  18.         generalUse();   //不能通过编译,  
  19.         newBehaviour();  
  20.   
  21.     }  
  22. }  

 通过测试看到,当参数为(int... arg) 与传统的(int [] args) 在调用时,但不传入参数时,

传统的使用将不能通过编译:

Java代码 

 收藏代码

  1. Hello.java:18: 无法将 Hello 中的 generalUse(int[]) 应用于 ()  
  2.                 generalUse();  
  3.                 ^  
  4. 1 错误  

而新特性,并不报错。

这样的使用是java的使用更加灵活。

猜你喜欢

转载自blog.csdn.net/bingguang1993/article/details/82387464
今日推荐