我是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());
请帮忙
答案 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());
}