【发布时间】:2023-03-30 19:42:01
【问题描述】:
有什么方法可以让泛型方法使用它的类型参数,就好像它是一个数字一样?例如,考虑一个方法,它接受任何数字并在保持输入类型的同时返回其值的两倍。
static <T> T foo(T number) {
return number*2;
}
这不会编译,因为没有为 T 和 int 定义 *。将T 更改为<T extends Number> 没有帮助,转换(T)2 也无法编译。
【问题讨论】:
-
简短回答是否定的。你最终会做大量的 case 语句来检查各种可能的类型。
-
@DavidWallace 真可惜,我确信必须有一种优雅的方法来解决这个问题。:(
标签: java