如何根据T创建不同行为的泛型方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据T创建不同行为的泛型方法?相关的知识,希望对你有一定的参考价值。
创建一个根据给定类型采取不同行为的泛型方法的最佳方法是什么,而不使用if语句来检查它是什么类型的?
例如,如果Add<T>(T x, T y)
是x + y
,T
如果Integer
是x.add(y)
,那么如何创建一个返回T
的BigInteger
方法,而不检查T
的类是否是BigInteger
。
答案
泛型类型参数没有此类功能。
您可能正在寻找方法重载:Java允许您创建具有相同名称的多个方法,只要它们具有不同的参数类型(和/或不同数量的参数)。所以你可以用不同的实现编写两个或更多的方法,如下所示:
public Integer add(Integer i, Integer j) {
// do stuff
}
public BigInteger add(BigInteger i, BigInteger j) {
// do other stuff
}
当你调用add
时,编译器将通过检查你传递的参数的类型来决定选择哪些方法。
以上是关于如何根据T创建不同行为的泛型方法?的主要内容,如果未能解决你的问题,请参考以下文章