有个这样的方法:protected ArrayList getSelectList(Connection con, String sql, boolean withNoselect, String noSelectView, Object[] params) throws DAOException, ApplicationException {。}可以getSelectList(con, sql, true, "", null);这样调用。。
但我如果想在最后个Object[] params参数的位置+参数。而不是以前的NULL,该怎么+参数哦~~

解决方案 »

  1.   

    首先你要生成一个Object[]的对象,比如
    Object[] oa = new Object[4];
    oa[0] = new Object();
    oa[1] = new Object();
    oa[2] = new Object();
    oa[3] = new Object();然后调用方法的时候写成:getSelectList(con, sql, true, "", oa);这样就可以了
      

  2.   

    Object[] oa = new Object[3];
    oa[0] = new String("43");
    oa[1] = new String("g");
    oa[2]=new Integer(11);
    像这样么?消耗性能么?
      

  3.   

    消耗性能是什么意思?
    既然你需要通过参数传递Object[]数组,当然要生成好数组,所以你这么定义是完全可以的。
    生成数组对象oa,生成两个String对象和一个Integer对象肯定是要占用heap空间的,不知道这是不是你所说的“性能消耗”,如果你是这个意思的话,答案是肯定的。
      

  4.   

    LZ想问的是
    Object[] oa = new Object[3];
    oa[0] = new String("43");
    oa[1] = new String("g");
    oa[2]=new Integer(11);每次数组中的元素相当于定义了一次变量,是否消耗资源吧,其实这个和你通过普通意义的定义变量是一样的资源消耗和
    String a="43";
    String b="g";
    int c=11;
    是一样的
      

  5.   

    ls的,你的“是一样的”并不完全正确。首先定义int c=11是不能作为Object对象的,除非用JDK1.5以上版本,会有auto boxing的功能,但实际上这样也会产生新的对象。而对于String而言,String a = "43";和String a = new String("43");可是不一样的哦。前者是生成一个常量字符串"43",而a指向它。
    证据:
    String a = "43";
    String b = "43";
    if(a == b) System.out.println("true"); //这里输出true而对于String a = new String("43");来说,是先生成一个常量字符串"43",再定义一个对象,对象里面的内容是这个字符串常量。
    证据:
    String a = new String("43");
    String b = new String("43");
    if(a == b) System.out.println("true"); //这里什么都不输出但
    String a = new String("43");
    String b = new String("43");
    if(a.intern() == b.intern()) System.out.println("true"); //这里输出true
      

  6.   

    TO:LS
    如果从内存地址的开辟,和内存的消耗角度讲,消耗的资源是一样的,或者大小是一样的,我是这个意思
      

  7.   

    String s = "43";和String s = new String("43");是一样吗?我没研究过,但感觉上不一样。因为前者包括一个字符串常量占用内存,一个引用s占用内存,而后者除此之外还有一个String对象占用内存。