java中返回值是一个泛型(通配符),如何从一个用通配符的对象中取到想要的值?

swnuv
  • 3.8k
山东
GlobalResponse<?> result =new GlobalResponse<>();
result= Client.getValue(point);
Object o  = result.getData()
后面怎么写呀?
public class GlobalResponse<T> implements Serializable {

    private String code;
    private String msg;
    private T data;
...........

返回结果是这样的

{id=2525843,  av=46208}
{id=2525430,  av=42038}
回复
阅读 710
2 个回答
✓ 已被采纳

如果能确定Client.getValue返回值中data的类型,那么直接指定GlobalResponse中的泛型,比如data是String类型,则

GlobalResponse<String> result = Client.getValue(point);
String o = result.getData();

如果无法确定,那就只能用instanceOf来判断强转了

转成 Json,再转成自己想要的实体对象。可以自己实现一个工具类,也可以直接网上找一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏