如何将对象集合作为java中方法的参数传递

时间:2012-12-29 19:20:18

标签: java generics collections

我有一个填充的ArrayList对象集合(学生),现在我想将填充的对象传递给方法签名,以便将每个唯一对象写入文件。

    public static ArrayList<PopulateAlumnosObj> populateAlumnos(int idAlumno, String nombreAlumno) {
    ArrayList<PopulateAlumnosObj> alumnosList = new ArrayList<PopulateAlumnosObj>();
    for (int i = 0; i <= 100; i++) {
        mPopulateAlumnosObj = new PopulateAlumnosObj(i, nombreAlumno);     
        mPopulateAlumnosObj.setTelefonoAlumno("5555-5555"+i);
        mPopulateAlumnosObj.setDireccionAlumno("Dirección"+i);
        alumnosList.add(mPopulateAlumnosObj);
    }
    return alumnosList;
}

 *Here I receive the populate objct.*

 ArrayList<PopulateAlumnosObj> mReceiveAlumnosObjList = new  ArrayList<PopulateAlumnosObj>();
    mReceiveAlumnosObjList = populateAlumnos(1, "Isaías");
    writeToFile(mReceiveAlumnosObjList);

  *This does not work!*

  public static void writeToFile(ArrayList<PopulateAlumnosObj> aAlumnoToFile) { 

现在它有效! 我错过了每一个! 不管怎样,谢谢。

            for (PopulateAlumnosObj eachAlumnoToFile : aAlumnoToFile) {
            pw.println(eachAlumnoToFile.getIdAlumno() + "\t");
            pw.println(eachAlumnoToFile.getNombreAlumno() + "\t\t");
            pw.println(eachAlumnoToFile.getTelefonoAlumno() + "\t\t");
            pw.println(eachAlumnoToFile.getDireccionAlumno() + "\t\t");
        }

我只是在收藏等等; 但我很感激你的意见。谢谢你们所有人。

2 个答案:

答案 0 :(得分:1)

  1. 不要两次实例化ArrayList。仅在方法populateAlumnos中保留实例化。
  2. 我没有看到你的mPopulateAlumnosObj声明。 PopulateAlumnosObj mPopulateAlumnosObj;之类的内容必须位于populateAlumnos内。
  3. ArrayList传递给writeToFile方法看起来是正确的。

答案 1 :(得分:0)

可能是这样的:

 List<PopulateAlumnosObj> populateAlumnos = new ArrayList<PopulateAlumnosObj>(100);

        for (int i = 0; i <= 100; i++) {
            PopulateAlumnosObj mPopulateAlumnosObj = new PopulateAlumnosObj(i, nombreAlumno);
            mPopulateAlumnosObj.setTelefonoAlumno("5555-5555"+i);
            mPopulateAlumnosObj.setDireccionAlumno("Dirección"+i);
            populateAlumnos.add(mPopulateAlumnosObj);
        }

        for(PopulateAlumnosObj student: populateAlumnos) {
            writeToFile(student);
        }

        public void writeToFile(PopulateAlumnosObj alumnos) { //method implementation...

但我不确定你的PopulateAlumnosObj构造函数和setter ......它们看起来很奇怪......