我需要在java中编写一个方法,以便从对象列表中搜索对象。问题在于搜索的标准。我可能需要根据一个标准或多个标准的组合搜索对象,这些标准将在运行时决定。我如何继续使用它?
答案 0 :(得分:0)
您可以使用Reflection,将以下代码作为提示: -
for(ObjectToBeSearched bean:objectList){
Field field = bean.getClass().getDeclaredField("searchKey");
String searchKeyVal=field.get(bean);
if(criteria.equals(searchKeyVal)){
System.out.println("Object found!!!");
}
}
方法应该是: - 传递一个HashMap,其中key是对象属性名称,value将是其需要搜索的值。
1)现在使用Map键可以获得java.lang.reflect.Field
2)使用反射获取Field值的值
3)现在将它与存储的对应于相应密钥的HashMap中的值进行比较。
传递给方法的Map绝对是动态的。