开始遇到问题,碰到了函数传参Object... params,不太理解什么意思。
/** * 执行更新操作 */ public int update(String sql, Object... params) throws SQLException { st = conn.prepareStatement(sql); int index = 1; // 填充sql语句中的占位符 if (params != null && params.length > 0) { for (int i = 0; i < params.length; i++) { st.setObject(index++, params[i]); } } return st.executeUpdate(); }
主要效果是传递个数可变的实参。
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) 在调用时,但不传入参数时, 传统的使用将不能通过编译:
关于此处写法更详细的介绍可以点击下方链接
http://blog.csdn.net/avius/article/details/65970 ;[J2SE 1.5]逐渐挖掘Varargs