为了账号安全,请及时绑定邮箱和手机立即绑定

这个泛型方法应该怎么写才对

这个泛型方法应该怎么写才对

ABOUTYOU 2019-03-28 18:15:44
我是C#转Java的,发觉Java的泛型写起来有点奇怪,求助,下面这个问题应该如何解决。定义的方法:public static <T> T FromJson(String json){    T obj = JSON.parseObject(json, new TypeReference<T>() {});    return obj;}使用的时候报错MyClass cls2 = JsonClass.FromJson<MyClass>(str);提示是<MyClass>这个地方错误,如果删掉,就语法上正确,但是实际运行会错误。我是按照C#逻辑来理解些的,貌似Java不是这么一回事?
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

// 泛型方法要么直接让其推导类型

MyClass cls2 = JsonClass.FromJson(str);


// 要么这样指定

MyClass cls2 = JsonClass.<MyClass>FromJson(str);

所以你编译错误是因为使用的方式不对。


至于你运行时报错,那你应该把错误信息贴出来,看看是哪里错了。


查看完整回答
反对 回复 2019-04-19
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

方法使用的时候不需要指定泛型

MyClass cls2 = JsonClass.FromJson(str);


查看完整回答
反对 回复 2019-04-19
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

public static <T> T FromJson(String json,Class<T> clz)

{

    return JSON.parseObject(json, new TypeReference<T>() {});

}

不知道这样可不可以


查看完整回答
反对 回复 2019-04-19
  • 3 回答
  • 0 关注
  • 474 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信