色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java方法通用返回結(jié)果集封裝操作

瀏覽:120日期:2022-08-26 11:33:07

我們?cè)诜庋b方法的時(shí)候,有的時(shí)候除了需要返回?cái)?shù)據(jù)結(jié)果集data,有的時(shí)候需要返回code(或者status) 或者 msg ,

此時(shí)可以采取下面兩種方式進(jìn)行封裝方法的返回值:

一.返回結(jié)果使用HashMap接收

1.方法中的數(shù)據(jù)封裝到hashmap中

public Map<String,Object> result(Object object) { Map<String,Object> result = new HashMap<String, Object>(); result.put('status', '1'); result.put('msg', '成功'); if(條件1不通過(guò)校驗(yàn)) { result.put('status', '-1'); result.put('msg', '....'); return result; } if(條件2不通過(guò)校驗(yàn)) { result.put('status', '-1'); result.put('msg', '....'); return result; } //封裝返回?cái)?shù)據(jù) Object data = new Object(); result.put('data', data); return result; }

2.方法調(diào)用:

public void test() { Map<String,Object> result = this.result(new Object()); if(!'1'.equals(result.get('status').toString())) { //校驗(yàn)不通過(guò) return; }else { //如果校驗(yàn)通過(guò),拿到數(shù)據(jù) Object data = result.get('data'); //TODO } }

二.使用泛型對(duì)象接收

1.通用結(jié)果集封裝

public class Result<T>{ private static final String SUCCESS = '1'; private static final String FAIL = '0'; private String code; private String msg; private T Data; public Result(String code) { this.code = code; } public Result(String code, String msg) { super(); this.code = code; this.msg = msg; } public Result(String code, String msg, T data) { super(); this.code = code; this.msg = msg; Data = data; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return Data; } public void setData(T data) { Data = data; } public static <T> Result<T> ok(T object) { return new Result<T>(SUCCESS, '', object); } public static <T> Result<T> ok() { return new Result<T>(SUCCESS); } public static <T> Result<T> nok(String msg) { return new Result<T>(FAIL, msg); } public static <T> Result<T> nok() { return new Result<T>(FAIL); } public static <T> Result<T> nok(String code, String msg) { return new Result<T>(code, msg); } public static <T> Result<T> nok(String code, String msg, T object) { return new Result<T>(code, msg, object); } public boolean isOk() { return Result.equals(getCode()); }}

2.對(duì)應(yīng)需要返回?cái)?shù)據(jù)T data 的 方法

public Result<T> result (Object object){ if(條件1不通過(guò)校驗(yàn)) { return Result.nok('。。。');; } if(條件2不通過(guò)校驗(yàn)) { return Result.nok('。。。');; } return Result.ok(T);}

3.方法調(diào)用:

public void test { Result<T> result = this.result(object); if(!result.isOk()) { //校驗(yàn)不通過(guò) return; }else { //如果校驗(yàn)通過(guò),拿到數(shù)據(jù) Object data = result.getData(); //TODO } }

補(bǔ)充知識(shí):java后端封裝標(biāo)準(zhǔn)返回類到前端

在日常開發(fā)中,我們后端和前端最好是約定一個(gè)數(shù)據(jù)格式,用于后端封裝好數(shù)據(jù),然后返回前端,前端就可以很簡(jiǎn)單地就解析了,下面是我總結(jié)出來(lái)經(jīng)常會(huì)那么用的模板,可以參考一下:

1、創(chuàng)建對(duì)象

直接在實(shí)體包下面新建一個(gè)ReturnParam對(duì)象,對(duì)象內(nèi)容包括了是否成功標(biāo)記、list結(jié)果集合、total總數(shù)(用于前端分頁(yè))還有可拓展的其他對(duì)象,直接看代碼吧:

import java.util.List; /** * @Author: John * @Description: 返回前端的統(tǒng)一對(duì)象 * @Date: 2019/8/3 10:03 * @param: null * @return: */public class ReturnParam<T> { private Boolean success; //請(qǐng)求是否成功 private List<T> list; //結(jié)果的集合 private int total; //結(jié)果的總條數(shù) private Object obj; //其他的對(duì)象,可以使用Map<String, Object>的格式添加 public Boolean getSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; }}

2、調(diào)用

在代碼中調(diào)用就會(huì)使用下面的格式調(diào)用,下面附上我的一個(gè)小例子:

package com.tw.controller; import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; /** * @Author: John * @Description: 用于測(cè)試的接口 * @Date: 2019/8/2 21:44 * @param: null * @return: */@RequestMapping('/debug')@Controllerpublic class DebugController { //日志 private static Logger logger = LoggerFactory.getLogger(DebugController.class); @GetMapping('/test') public ReturnParam test() { logger.info('============調(diào)用debug的test方法'); //List集合中的數(shù)據(jù) List<String> things = new ArrayList<>(); things.add('apple'); things.add('pear'); things.add('banana'); //添加其他類型1 Map<String, String> sort = new HashMap<>(); sort.put('sort', 'fruit'); //添加其他類型的數(shù)據(jù)2 String nama = 'John'; int age = 27; //聲明Object對(duì)象,并用于裝其他的東西 Map<String, Object> objectMap = new HashMap<>(); objectMap.put('sort', sort); objectMap.put('name', nama); objectMap.put('age', age); ReturnParam returnParam = new ReturnParam(); returnParam.setSuccess(true); returnParam.setList(things); returnParam.setTotal(things.size()); //obj用于裝qita類型的數(shù)據(jù)統(tǒng)一返回到前端 returnParam.setObj(objectMap); return returnParam; }}

3、返回

查看返回前端的數(shù)據(jù)格式,很干凈,很舒服,很符合有強(qiáng)迫癥的程序員觀看:

java方法通用返回結(jié)果集封裝操作

4、結(jié)語(yǔ):

開發(fā)過(guò)程中需要多多總結(jié),遇到一些感興趣的東西可以隨手記下來(lái),總比過(guò)去了就過(guò)去了,什么都不留下來(lái)要好很多,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 怡红院在线a男人的天堂 | 国产99视频精品草莓免视看 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 免费观看欧美一级高清 | 久久香蕉国产线看观看亚洲片 | 亚洲国产精品一区二区三区久久 | 国内精品九一在线播放 | 洋老外米糕国产一区二区 | 日本欧美精品 | fc2久久 | 国产一级不卡毛片 | 色综合天天综合网看在线影院 | 久久综合网址 | 欧美成人毛片免费网站 | 91精品91 | 女人扒开腿让男人捅啪啪 | 国产精品久久久久久久久免费 | 国产精品白浆流出视频 | 人久热欧美在线观看量量 | 久久久久久青草大香综合精品 | 成人在线亚洲 | 免费一区二区三区在线视频 | 亚洲成人在线视频播放 | 最近中文字幕精彩视频 | 欧美亚洲国产成人不卡 | 美女福利视频国产片 | 分享一个无毒不卡免费国产 | 亚洲成年人在线观看 | 亚洲人成网国产最新在线 | 高跟丝袜美女一级毛片 | 欧美一级成人毛片视频 | 精品色综合 | 国产在线欧美日韩一区二区 | 成人免费一区二区三区在线观看 | 欧美一二三区视频 | 国产一区二区亚洲精品 | 久久日本精品一区二区免费 | 久久这里只有精品免费播放 | 亚洲欧美7777 | 国产高清亚洲 | 免费亚洲黄色 |