我有一个名为“mylist”的 java 对象的 ArrayList。 我从数据库中获取列表(mylist)的名称,该名称以字符串形式出现。我需要在 JAVA 中找到这个列表的大小,并需要对其进行迭代。
有办法做到这一点吗?
编辑: 在这里更清楚地说,我有一个“Candidate”类
class Candidate {
String firstName;
String lastName;
List<Education>educationRecords;
.....
}
class Education {
String school;
String degree;
.....
}
我需要从结构与 Candidate 对象非常不同的 JSONObject 填充 Candidate 对象(因此不能使用 Gson 或 jackson)。
诸如名字、姓氏、学校和学位等简单字段存储在数据库中。
我获取一个 Listfields 并迭代它们以设置 Candidate 对象。为了设置firstName、lastName,我使用SpEL。
但是,对于学校和学位等字段,它会变得复杂,因为我需要知道 JSONObject 中教育记录的大小。
所以,我的想法是,在迭代所有字段时,如果 Education 类中存在 school 字段(使用反射),我需要检查 educationRecords 是否是 Candidate 类中的 List 类型,然后通过某种逻辑 X(取educationRecords 作为变量名)对其进行迭代。
这是我缺少的逻辑“X”。
最佳答案
我不太明白这里的用例。然而,我的理解是你有一个 ArrayList<Object> mylist
并且您需要根据从数据库检索到的字符串找到它的大小。
您可以将列表存储在缓存中,其中键是列表的名称,值是实际对象。您可以使用 redis、eh-cache 或 memcache(或类似的任何东西)来实现相同的目的。
因此,当您从数据库检索名称时,从缓存中获取相应的对象,并在类型转换后对该对象执行 size() 操作。如果您在缓存中存储列表类型而不是对象类型,则不需要最后一部分(类型转换)。
关于java - 查找 ArrayList 的大小,其中列表名称作为字符串传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961446/