我在gson中找到以下源代码:
public <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException
{
JsonReader jsonReader = newJsonReader(json);
T object = (T) fromJson(jsonReader, typeOfT);
assertFullConsumption(object, jsonReader);
return object;
}
fromjson函数声明返回对象还是返回t有关系吗?至少据我所知,如果t不能由函数参数推断出来,它就完全充当了object。那么为什么源代码使用t而不是对象呢?
1条答案
按热度按时间kuhbmx9i1#
不会再回来了
Object
但是从上下文推断出的类型,或者——如果不可能——通过传递带有类型见证的类型参数:YourClass.<String>fromJson()
请注意,这不会神奇地工作。如果从内部调用返回的对象与T
在运行时,(外部返回值的)赋值将抛出ClassCastException
.例子: