我不知道在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
}
}
答案 0 :(得分:0)
这里有一个frankendesign案例。您正在使用obj_error
的单个实例(您应该将其重命名为ObjError
,以便让Java眼睛更容易阅读),当您真正想要2个实例时。
您应该从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);
答案 1 :(得分:0)
有很多话要说......首先,掌声是它的编制。
作为提示,您应该为主对象使用不同的类,其中包含此列表中对象的错误列表。目前,您正在处理一种树形结构。
例如:
class ErrorContainer{
// ...
private List<ErrorMsg> = new ArrayList<>;
// ... continue
应该更清楚。