[英]How to turn an Array in nested ArrayList (ArrayList of ArrayList)?
[英]How to navigate nested arraylist?
我正在使用一个列表来检索bean类对象的字段的值,在检查列表时看起来像这样
resultList=ArrayList<E>
[0]=UserDetails
firstname=xxxxxx
lastname=xxxxxx
username=xxxxxx
[1]=TaxDetails
earnings=xxxxxx
savings=xxxxxxx
a/c no=xxxxxx
[2]=null;
[3]=null;
现在我的问题是,在使用resultList.get(i)
获取值时,如何获取类字段的值,我正在获取UserDetails
, TaxDetails
,这不是我的要求。 我如何进一步导航以获取其字段? 请帮助!
像这样迭代
for (UserDetails object : list) {
}
要么
for (int i=0;i<list.size();i++) {
UserDetails object = list.get(i);
}
尝试这个
String firstname = "",lastname="",username="",earnings="",savings="",ac="";
if(i==0)
{
firstname = resultList.get(i).firstname;
lastname = resultList.get(i). lastname;
username = resultList.get(i). username;
}
else if(i==1)
{
earnings = resultList.get(i). earnings;
savings = resultList.get(i). savings;
ac = resultList.get(i).acno;
}
您需要强制转换为相关的Object
才能查看其成员变量。
肮脏的方法只是做UserDetails user = (UserDetails)resultList.get(0);
但这是假设您知道UserDetails
对象位于位置0,因此不是最佳实践。
因此,您需要执行以下操作(如果要遍历列表),以在执行强制转换之前检查存在的Object类型:
for (Object anObject : resultList){
if (anObject instanceof UserDetails){
UserDetails user = (UserDetails)anObject;
String firstname = user.firstname;
}else if (anObject instanceof TaxDetails){
TaxDetails tax = (TaxDetails)anObject;
String earnings = tax.earnings;
}
}
当然,如果您只是访问一个值而不是迭代,则需要执行以下操作:
Object anObject = resultList.get(0);
然后执行instanceof
比较并按照上面的循环进行转换。
我认为您的列表有不同的类型元素,例如UserDetails,TaxDetails ?。 第一印象是我不认为在同一集合对象中保留不同的元素是个好主意。
解决当前问题
for (Object obj : resultList) {
if (obj instanceof UserDetails) {
UserDetails userDetails = (UserDetails)obj;
String firstname = userDetails.getFirstName();
...
} else if (obj instanceof UserDetails) {
.....
}
}
希望对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.