接口(返回类型)中的方法级别泛型是否有意义?他们有用吗?例如: -
public interface ABX {
public <T> T fx(String p);
}
我可以像这样简单地制作泛型类级别
public interface ABX<T> {
public T fx(String p);
}
是否存在任何我希望泛型在接口/抽象类中的方法级别(对于返回类型)的情况。
答案 0 :(得分:2)
方法级泛型肯定有实用性。但是你必须以某种方式绑定泛型类型参数,所以通常这样的方法将有一个泛型参数,比如Class,然后返回一个通用值。您的示例不会这样做,因此很难看到泛型类型参数的值。
你可以在整个地方看到它们的例子 - 我遇到的最多的是Jackson数据绑定类ObjectMapper - https://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/ObjectMapper.html,例如
<T> T readValue(InputStream is, Class<T> returnType)
所以,这里的值是ObjectMapper 不是一般类型的类,但它允许我绑定任何类(前提是它可以理解类以及如何设置它基于输入的各种属性)。重要的是,对于整个应用程序,您只需要一个ObjectMapper实例,对于您可能需要数据绑定的每种类型的对象都不需要一个实例。