【发布时间】:2016-04-07 13:18:29
【问题描述】:
我看到了几个关于泛型返回类型的问题,但没有一个回答我的问题。
如果没有任何参数的限制,例如JayWay中的以下方法:
public static <T> T read(String json, String jsonPath, Filter... filters) {
return new JsonReader().parse(json).read(jsonPath, filters);
}
将其用作泛型有什么意义?
我告诉我团队的人,这种方法应该用作:
JsonPath.<Boolean>read(currentRule, "$.logged")
代替:
(boolean) JsonPath.read(currentRule, "$.logged")
但我真的分不出来...
【问题讨论】:
-
类型擦除后,我认为没有区别。
-
方法体中没有任何东西表面上使用类型变量
T。JsonPath.<Boolean>read(currentRule, "$.logged")如何安全地返回Boolean而JsonPath.<String>read(currentRule, "$.logged")安全地返回String? -
您愿意将演员表更改为
Boolean以避免将自动装箱拖入问题中吗? -
实际上,我在这里看不到泛型的优势。如前所述,从未使用过 T。
-