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