我正在处理一个 Java 项目,我想将一个 Java 对象传递给一个方法以避免代码重复。这是我的代码:
private List<Dog> getListDogs(SearchResponse response) {
SearchHit[] searchHit = response.getHits().getHits();
List<Dog> dogList = new ArrayList<>();
if (searchHit.length > 0) {
Arrays.stream(searchHit).forEach(hit -> dogList.add(objectMapper.convertValue(hit.getSourceAsMap(),Dog.class))
);
}
return dogList;
}
我还有其他需要使用相同方法的对象,如 Cat 对象和 Horse 对象。您知道如何使我的方法通用以便仅将对象类型作为参数传递吗?
像这样的东西:
private List<Generic> getListObject(SearchResponse response , GenericObject object){...
按照上面的评论,我找到了如何解决我的问题,这是通用方法代码:
private <T> List<T> getSearchResult(SearchResponse response , Class<T> clazz) {
SearchHit[] searchHit = response.getHits().getHits();
List<T> lisOfObjects = new ArrayList<>();
if (searchHit.length > 0) {
Arrays.stream(searchHit).forEach(hit -> lisOfObjects.add(objectMapper.convertValue(hit.getSourceAsMap(),clazz)));
}
return lisOfObjects;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句