迭代自定义类的对象



我不知道在java中迭代对象,但是我尝试创建一个自定义类并尝试从中获得结果,但我得到了相同的迭代结果,而数据集进入对象是不同的。这是我的班级。

package property;
import java.util.ArrayList;
public class obj_error {
    public Integer error_code;
    public String error_desc;
    public Integer error_line;
    public String error_modul;
    public Integer total = 0;
    public ArrayList<obj_error> list = new ArrayList<obj_error>();
    public void set(Integer code, String desc, String module,Integer line ){
        this.error_code = code;
        this.error_desc = desc;
        this.error_modul= module;
        this.error_line = line;
        this.total      = total+1;
        //list.add(this);
        set_list();
    }
    public Integer error_code()     { return error_code; }
    public String error_desc()      { return error_desc; }
    public Integer error_line()     { return error_line; }
    public String error_modul()     { return error_modul; }
    public Integer total()          { return total; }
    public ArrayList<obj_error> get_error_list() { return list; }
    public void set_code(Integer param)  { this.error_code = param; }
    public void set_desc(String param)   { this.error_desc = param; }
    public void set_line(Integer param)  { this.error_line = param; }
    public void set_modul(String param)    { this.error_modul = param; }
    public void set_total(Integer param)   { this.total = total+1; }
    public void set_list(){ list.add(this); }

}

在这里我给这个类命名为

package testcase;
import java.util.ArrayList;
import java.util.Iterator;
import property.obj_error;
public class set_error {
    public static void main(String[] args){
        obj_error error = new obj_error();
        error.set(1001,"Not Valid","Loand",1);
        error.set(1002,"Not Validsafasd","Loan",2);
        System.out.println(error.list);

        for(Iterator<obj_error> i = error.get_error_list().iterator(); i.hasNext(); ) {
          obj_error item = i.next();
          System.out.println(item.error_code+" " + item.error_desc+ " " +item.error_line+ " " + item.error_modul);
        }
        //print out result
        //1002 Not Validsafasd 2 Loan
        //1002 Not Validsafasd 2 Loan

    }
}

有很多话要说…首先,请称赞它可以编译。

作为提示,您应该为包含此列表中对象的错误列表的主对象使用不同的类。当前,您正在处理一种树状结构。

例如:

class ErrorContainer{
     // ...
     private List<ErrorMsg> = new ArrayList<>;
     // ...  continue

你这里有一个弗兰肯设计的例子。您正在使用obj_error的单个实例(您可能应该将其重命名为ObjError以使Java眼睛更容易阅读),而实际上似乎需要两个实例。

你应该把list从你的obj_error类中取出来,把它放在你的主方法中。如果您将set方法转换为构造函数,则设计开始看起来好多了(艺术家渲染):

public static void main(String[] args){
    ArrayList<obj_error> list = new ArrayList<obj_error>();
    obj_error error1 = new obj_error(1001, "Not Valid", "Loand", 1);
    list.add(error1);
    obj_error error2 = new obj_error(1002, "Not Validsafasd", "Loan", 2);
    list.add(error2);
    System.out.println(list);
    for(obj_error item : list)
        System.out.println(item.error_code+" " + item.error_desc+ " " +item.error_line+ " " + item.error_modul);

相关内容

  • 没有找到相关文章

最新更新