public class Ret extends HashMap
一、主要应用场景:
1:业务层需要返回多个返回值,例如要返回业务状态以及数据
2:renderJson(ret) 响应 json 数据给客户端
二、实例
1:服务端
Ret ret = service.justDoIt(paras);
renderJson(ret);
2:javascript 客户端 ajax 回调函数通常这么用:
success: function(ret) {
if(ret.state == "ok") {
...
}
if (ret.state == "fail") {
...
}
}
3:普通应用程序通常这么用:
String json = getRawData();
Ret ret = FastJson.getJson().parse(json, Ret.class);
if (ret.isOk()) {
...
}
if (ret.isFail()) {
...
}
三、定制 Ret
1:将状态字段名由 "state" 改为 "success",将状态值 "ok" 改为 true、"fail" 改为 false
CPI.setRetState("success", true, false);
2:将状态字段名由 "state" 改为 "code",将状态值 "ok" 改为 200、"fail" 改为 500
CPI.setRetState("code", 200, 500);
3:将消息字段名由 "msg" 改为 "message"
CPI.setRetMsgName("message")
4:配置 Ret 的 data(Object) 方法伴随 ok 状态,默认值为:false
CPI.setRetDataWithOkState(true)
5:配置监听 state 值,当值为 "ok" 时,额外放入 "success" 值为 true,否则为 false
CPI.setRetStateWatcher((ret, state, value) -> {
ret.set("success", "ok".equals(value));
});
在前后端分离项目中,有些前端框架需要该返回值:"success" : true/false
6:配置 Ret.isOk()、Ret.isFail() 在前两个 if 判断都没有 return 之后的处理回调
用于支持多于两个状态的情况,也即在 ok、fail 两个状态之外还引入了其它状态
CPI.setRetOkFailHandler((isOkMethod, value) -> {
if (isOkMethod == Boolean.TRUE) {
return false;
} else {
return true;
}
});
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>| 构造器和说明 |
|---|
Ret() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Ret |
_setData(Object data)
避免产生 setter/getter 方法,以免影响第三方 json 工具的行为
如果未来开放为 public,当 stateWatcher 不为 null 且 dataWithOkState 为 true
与 _setState 可以形成死循环调用
|
protected Ret |
_setMsg(String msg) |
protected Ret |
_setState(Object value)
避免产生 setter/getter 方法,以免影响第三方 json 工具的行为
如果未来开放为 public,当 stateWatcher 不为 null 且 dataWithOkState 为 true
与 _setData 可以形成死循环调用
|
static Ret |
by(Object key,
Object value) |
static Ret |
create() |
static Ret |
data(Object data) |
Ret |
delete(Object key) |
boolean |
equals(Object ret) |
static Ret |
fail() |
static Ret |
fail(Object key,
Object value)
已过时。
|
static Ret |
fail(String msg) |
<T> T |
getAs(Object key) |
<T> T |
getAs(Object key,
T defaultValue) |
<T> T |
getAs(Object key,
T defaultValue,
Func.F11<Object,T> converter) |
Boolean |
getBoolean(Object key) |
Double |
getDouble(Object key) |
Float |
getFloat(Object key) |
Integer |
getInt(Object key) |
Long |
getLong(Object key) |
Number |
getNumber(Object key) |
String |
getStr(Object key) |
boolean |
isFail() |
boolean |
isFalse(Object key)
key 存在,并且 value 为 false,则返回 true
|
boolean |
isNull(Object key)
key 不存在,或者 key 存在但 value 为null
|
boolean |
isOk() |
boolean |
isTrue(Object key)
key 存在,并且 value 为 true,则返回 true
|
static Ret |
msg(String msg) |
boolean |
notNull(Object key)
key 存在,并且 value 不为 null
|
static Ret |
of(Object key,
Object value) |
static Ret |
ok() |
static Ret |
ok(Object key,
Object value) |
static Ret |
ok(String msg) |
Ret |
set(Map map) |
Ret |
set(Object key,
Object value) |
Ret |
set(Ret ret) |
Ret |
setFail() |
Ret |
setIfNotBlank(Object key,
String value) |
Ret |
setIfNotNull(Object key,
Object value) |
Ret |
setOk() |
static Ret |
state(Object value) |
String |
toJson() |
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, valueshashCode, toStringpublic static Ret create()
public static Ret ok()
public static Ret fail()
@Deprecated public static Ret fail(Object key, Object value)
protected Ret _setState(Object value)
protected Ret _setData(Object data)
public Ret setOk()
public Ret setFail()
public boolean isOk()
public boolean isFail()
public <T> T getAs(Object key)
public <T> T getAs(Object key, T defaultValue)
public boolean notNull(Object key)
public boolean isNull(Object key)
public boolean isTrue(Object key)
public boolean isFalse(Object key)
public String toJson()
public boolean equals(Object ret)
equals 在接口中 Mapequals 在类中 AbstractMapCopyright © 2024. All rights reserved.