我有一个班级:
sample.java
class sample
int val;
String str;
构造
sample(String str,int val)
str=this.str;
val=this.val
test.java
ArrayList<sample> lst=new ArrayList<sample>();
lst.add(new sample("somedata",33)):
lst.add(new sample("somedata",33)):
发送(lst)通过网络发送arraylist obj。但我想知道如何在arraylist中打印值。我尝试使用迭代器,但它只显示对象引用。
答案 0 :(得分:4)
覆盖toString
课程中的sample
方法。你可以使用:
@Override
public String toString() {
return "str=" + str + " val=" + val;
}
答案 1 :(得分:3)
解决此问题的最简单方法:在toString
类上实施sample
方法:
@Override
public String toString() {
return str + ", " + val;
}
然后你会得到每个实例的字段值。
否则:从循环中访问字段:
for (sample s:lst) {
System.out.println(s.str + ", " + s.val);
}
答案 2 :(得分:2)
覆盖类中的 toString()方法
public String toString(){
return str+"," + value;
}
Iterator<Sample> itr = lst.iterator();
while(itr.hasNext()){
system.out.println(itr.next().toString());
}
答案 3 :(得分:1)
请使用以大写字母开头的类名。你的构造函数也是错的,它应该是
sample(String str,int val) {
this.str=str;
this.val=val
}
答案 4 :(得分:0)
实现toString,如果你想要的只是打印对象,你会没事的。