1

我知道对象在 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;
    }
}
4

2 回答 2

2

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

于 2013-05-23T19:48:48.873 回答
1
  1. 对象不作为引用传递,但传递的是引用的值。
  2. ArrayList您的代码将起作用,但在调用该方法时 无需传递 empty ielikt_frakcijas(),因为您只有clear它。

你可以做什么 :

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();
于 2013-05-23T19:52:48.593 回答