使用对象的ArrayList显示类成员值



我是java和android的新手。我创建了一个定义如下的类:

public class MyClass {
    int id;
    String name;
}

现在我正在创建类的对象,初始化类成员的值,并将对象添加到数组列表中,如下所示:

MyClass myclassobj1 = new MyClass();
myclassobj1.id = 1;
myclassobj1.name = "Abhishek";
MyClass myclassobj2 = new MyClass();
myclassobj2.id = 2;
myclassobj2.name = "Kumar";

ArrayList<MyClass> taskList = new ArrayList<MyClass>();
taskList.add(myclassobj1);
taskList.add(myclassobj2);

现在我将arraylist分配给像这样的迭代器

Iterator it = taskList.iterator();

现在,当我迭代数组列表时,我想记录我添加到类成员中的值,这是我无法做到的

while (it.hasNext())
            Log.d(TAG,it.next().getClass().getDeclaredFields().toString());

请帮助

您应该这样做:

List<MyClass> taskList = new ArrayList<MyClass>();
taskList.add(new MyClass(1, "kumar1"));
taskList.add(new MyClass(2, "kumar2"));

类MyClass中的使用参数定义构造函数。。。

AND重写类中的toString方法,以便在打印对象时可以看到可读的内容。。。

完成后,您将看到这将如何工作:

for (MyClass mx: taskList) {
    Log.d(TAG, mx.toString());
}

MyClass的一个例子是:

class MyClass {
    private int id;
    private String name;
    public MyClass(int id, String name) {
    this.id = id;
    this.name = name;
    }
    @Override
    public String toString() {
    return "MyClass [id=" + id + ", name=" + name + "]";
    }
}

编辑:

我怀疑您希望迭代器获取List中的值,而不是字段的名称。。。

实现看起来像:

Iterator<MyClass> it = taskList.iterator();
while (it.hasNext()) {
    System.out.println(it.next().getClass().getDeclaredFields().toString());
    System.out.println(it.next().getId());
    System.out.println(it.next().getName());
}

你肯定需要相应的getter。。。

public int getId() {
    return id;
}
public String getName() {
    return name;
}

如果其他一切看起来都很好,那么您可以在arraylist上迭代为:

for (MyClass task : taskList) {
    Log.d(TAG, task.id + " " + task.name);
}

这些部分基本上在我的代码中丢失了,这就是为什么我无法获得(日志)类成员的值

第一个:

public class MyClass {
     int id;
     String name;
    public String getId() {
        return id+"";
    }
    public String getName() {
        return name;
    }
}

第二:

Iterator<MyClass> it = taskList.iterator();
        while (it.hasNext()){
            MyClass myobj = it.next();
            Log.d(TAG,myobj.getId());
            Log.d(TAG,myobj.getName());
        }

最新更新