【发布时间】:2020-04-11 08:52:57
【问题描述】:
在没有类本身泛型的情况下拥有非静态方法泛型的有效用例是什么?
例子:
public class A {
<T> T someMethod(T param) {
//use case?
}
}
如上图,类没有参数化,但方法有。什么时候可以使用这种结构?
请注意,上面的代码只是一个例子。我对所有返回类型或参数都很好。我只对通用非静态方法的有效用例感兴趣。
【问题讨论】:
-
您确定它返回
void并且不接受任何参数吗?如果是这样,那对我来说也没有意义。 -
如果没有任何参数或返回类型,很难想象这样的方法能做什么。通常,您会将方法设为泛型,以便它可以接受某种泛型类型。
-
这个问题是理论上的,我们把
void换成任何其他类型并添加任何参数。 -
一个人为的用例:你想将两个列表合并在一起,所以两个
List<T>。但是您不想创建此实用程序static,因为您可能想记录一些内容或将一些结果写入不在静态上下文中的数据库。