RetResult增加cast方法

This commit is contained in:
redkale
2025-01-02 18:25:58 +08:00
parent 76c4a36ec7
commit be13d9711f

View File

@@ -97,6 +97,22 @@ public class RetResult<T> implements Serializable {
return this;
}
public <V> RetResult<V> cast(Type newType) {
return cast(this, newType);
}
public static <V> RetResult<V> 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<RetResult<T>> toFuture() {
return CompletableFuture.completedFuture(this);
}