java有界几种类型的泛型类型定义

时间:2012-01-05 09:07:26

标签: java generics types


我正在尝试编写一个适用于数字类型和字符串类型的泛型方法。有没有办法像这样有一个有界类型

<T extends Number || String> void print(){...}

非常感谢。

2 个答案:

答案 0 :(得分:2)

更好的解决方案是使用两个重载方法:

T void print(<T extends Number> number) {}

void print(String s) {}

希望这有帮助。

答案 1 :(得分:1)

不是真的。为“几种类型”声明类型定义的唯一方法是,这些类型在继承层次结构中共享一个共同的祖先,或者它们是否实现相同的接口。 NumberString都属于Object类型并实施Serializable,但这就是它们的共同点。

此外,在您的示例中,泛型类型的用途是什么?该方法不接收任何参数,也不返回任何内容。也许你最好重载print方法,如下所示:

void print(String s) {}
void print(Number n) {}