将ArrayList引用传递给另一个类

时间:2013-05-23 19:45:23

标签: java reference arraylist

我理解对象在Java中作为引用传递。 那么,正确这样做吗? ArrayList在父过程中创建,然后传递给另一个类中的过程,用于在其中创建新的元素集。

class DO_Thing {
 private static ArrayList<ElementClass> fr = new ArrayList<>();

 public static void do_main() {
    fr= Functions.add_elements(fr);
 }
}

public class Functions {
     public static ArrayList<ElementClass> add_elements(ArrayList<ElementClass > frk) {
        ElementClass ier;
        ResultSet zuzis;
        frk.clear();
        zuzis = dbini.db_getallrow("frakcijas");
        try {
            while (zuzis.next()) {
                ier = new Frakcijas();
                ier.frid = zuzis.getInt("frakcijas_id");
                ier.frnos = zuzis.getString("nosaukums");
                frk.add(ier);
            }
        } catch (SQLException a) {
            System.out.println(a);
        }
        return frk;
    }
}

2 个答案:

答案 0 :(得分:2)

功能上,是的。这是Builder对象构造模式的变体。

答案 1 :(得分:1)

  1. 对象不作为引用传递,但传递的是引用的值。
  2. 您的代码可以使用,但在调用ArrayList方法时无需传递空ielikt_frakcijas(),因为您只需clear
  3. 你能做什么:

    public static ArrayList<Frakcijas> ielikt_frakcijas() {
       Frakcijas ier;
       ResultSet zuzis;
       ArrayList<Frakcijas> result = new ArrayList<Frakcijas>();
       zuzis = dbini.db_getallrow("frakcijas");
       try {
           while (zuzis.next()) {
               ier = new Frakcijas();
               ier.frid = zuzis.getInt("frakcijas_id");
               ier.frnos = zuzis.getString("nosaukums");
               result.add(ier);
           }
       } catch (SQLException a) {
           System.out.println(a);
       }
       return result;
    }
    

    并调用它:

    frakcijas = Funkcijas.ielikt_frakcijas();