java - 这个泛型方法应该怎么写才对
伊谢尔伦
伊谢尔伦 2017-04-18 09:16:34
0
3
713

我是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不是这么一回事?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(3)
洪涛
// 泛型方法要么直接让其推导类型
MyClass cls2 = JsonClass.FromJson(str);

// 要么这样指定
MyClass cls2 = JsonClass.<MyClass>FromJson(str);

So your compilation error is because you are using it in the wrong way.

As for when you get an error when running, you should post the error message to see what went wrong.

Ty80

There is no need to specify generics when using the method

MyClass cls2 = JsonClass.FromJson(str);
刘奇
public static <T> T FromJson(String json,Class<T> clz)
{
    return JSON.parseObject(json, new TypeReference<T>() {});
}

I don’t know if this is possible

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template