使用Objects的ArrayList显示类成员值

时间:2016-07-24 13:22:15

标签: java android arraylist iterator

我是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());

请帮忙

3 个答案:

答案 0 :(得分:1)

你应该做这样的事情:

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());
}

你需要确定相应的吸气剂......

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

答案 1 :(得分:0)

如果其他所有事情看起来都很好,你可以在arraylist上迭代:

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

答案 2 :(得分:0)

我的代码中基本上缺少这些部分,这就是为什么我无法获取(Log)类成员的值

首先:

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());
        }