diff --git a/src/main/java/org/redkale/service/RetResult.java b/src/main/java/org/redkale/service/RetResult.java index 979cdee14..d67bfec21 100644 --- a/src/main/java/org/redkale/service/RetResult.java +++ b/src/main/java/org/redkale/service/RetResult.java @@ -97,6 +97,22 @@ public class RetResult implements Serializable { return this; } + public RetResult cast(Type newType) { + return cast(this, newType); + } + + public static RetResult cast(RetResult rs, Type newType) { + Object d = rs.result; + if (d != null) { + String text = d instanceof CharSequence + ? d.toString() + : JsonConvert.root().convertTo(d); + V n = JsonConvert.root().convertFrom(newType, text); + return new RetResult(rs.retcode, rs.retinfo, n).convert(rs.convert); + } + return rs; + } + public CompletableFuture> toFuture() { return CompletableFuture.completedFuture(this); }