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

作者站长头像
站长
· 阅读数 14
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}
回复
1个回答
avatar
test
2024-07-20

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

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

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容