Java服务返回结果消息和对象类
嗨,我必须在下面的代码中返回ResultMessage和我的对象类Java服务返回结果消息和对象类,java,spring-boot,Java,Spring Boot,嗨,我必须在下面的代码中返回ResultMessage和我的对象类 public List<EmployeeInformation> findAll(String IndexName) throws Exception { String ResultMessage = new String(); if (Strings.isNullOrEmpty(IndexName)) { ResultMessage= "Index name
public List<EmployeeInformation> findAll(String IndexName) throws Exception {
String ResultMessage = new String();
if (Strings.isNullOrEmpty(IndexName)) {
ResultMessage= "Index name is null or empty";
} else if (isTextContainUpperCase(IndexName)) {
ResultMessage= "Index name should be in lowercase";
} else if (!checkEsConnection(client)) {
ResultMessage= "Elasticsearch deployment is not reachable";
}
SearchRequest searchRequest = new SearchRequest(IndexName);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
return getSearchResult(searchResponse);
}
private List<EmployeeInformation> getSearchResult(SearchResponse response) {
SearchHit[] searchHit = response.getHits().getHits();
List<EmployeeInformation> EmployeeDocuments = new ArrayList<>();
for (SearchHit hit : searchHit) {
EmployeeDocuments
.add(objectMapper
.convertValue(hit
.getSourceAsMap(), EmployeeInformation.class));
}
return EmployeeDocuments;
}
public List findAll(字符串索引名)引发异常{
String ResultMessage=新字符串();
if(Strings.isNullOrEmpty(IndexName)){
ResultMessage=“索引名为null或空”;
}else if(ISTEXTCONTAINS大写(IndexName)){
ResultMessage=“索引名称应为小写”;
}如果(!检查连接(客户端)){
ResultMessage=“无法访问Elasticsearch部署”;
}
SearchRequest SearchRequest=新的SearchRequest(IndexName);
SearchSourceBuilder SearchSourceBuilder=新的SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(searchSourceBuilder);
SearchResponse SearchResponse=client.search(searchRequest,RequestOptions.DEFAULT);
返回getSearchResult(searchResponse);
}
私有列表getSearchResult(搜索响应){
SearchHit[]SearchHit=response.getHits().getHits();
List EmployeeDocuments=new ArrayList();
for(SearchHit:SearchHit){
雇员文件
.add(对象映射器)
.转换值(命中率)
.getSourceAsMap(),EmployeeInformation.class));
}
返回员工文档;
}
返回结果消息和my employeeinformation对象的最佳方式是什么。是否有人可以相应地修改上述代码并发布您的答案或建议我如何实现这一点?提前感谢此代码是我针对您的需求建议的示例代码
public class Test {
public static void main(String args[]) {
Test test = new Test();
String dept = "test";
Object[] result = test.searchUser(dept);
// Here must and should be follow the initailize order.
String something = null;
EmployeeInformation employee = null;
if (result.length>= 0 && result[0] instanceof String) {
something = (String) result[0];
}
if (result.length>= 1 && result[1] instanceof EmployeeInformation) {
employee = (EmployeeInformation) result[1];
}
// do something
}
public Object[] searchUser(String dept) {
Object[] result = new Object[2];
result[0] = dept;
result[1] = getUser(dept);
return result;
}
private List<EmployeeInformation> getUser(String dept) {
List<EmployeeInformation> userList = null;
// some logic for get the EmployeeInformationInformation List based on
// department.
return userList;
}
}
公共类测试{
公共静态void main(字符串参数[]){
测试=新测试();
字符串dept=“test”;
Object[]result=test.searchUser(部门);
//这里必须并且应该遵循初始化顺序。
字符串something=null;
EmployeeInformation employee=null;
if(result.length>=0&&result[0]字符串实例){
something=(字符串)结果[0];
}
if(result.length>=1&&result[1]员工信息实例){
employee=(EmployeeInformation)结果[1];
}
//做点什么
}
公共对象[]搜索用户(字符串部门){
对象[]结果=新对象[2];
结果[0]=部门;
结果[1]=getUser(部门);
返回结果;
}
私有列表getUser(字符串部门){
List userList=null;
//基于xml获取employeeinformationlist的一些逻辑
//系。
返回用户列表;
}
}
您可以返回ImmutablePair
。
然后可以通过getLeft()和getRight()方法访问这些对象。但是,您需要
org.apache.commons
lib来完成此任务。值得添加这个库,因为它有更多这样的UTIL和包装类 创建一个将消息和数据作为属性的类,并返回该类的一个实例创建一个WrappedObject.class
并返回该类?此代码是为了避免为每个动态返回类型创建新类。