我正在尝试编写一个适用于数字类型和字符串类型的泛型方法。有没有办法像这样有一个有界类型
<T extends Number || String> void print(){...}
非常感谢。
答案 0 :(得分:2)
更好的解决方案是使用两个重载方法:
T void print(<T extends Number> number) {}
void print(String s) {}
希望这有帮助。
答案 1 :(得分:1)
不是真的。为“几种类型”声明类型定义的唯一方法是,这些类型在继承层次结构中共享一个共同的祖先,或者它们是否实现相同的接口。 Number
和String
都属于Object
类型并实施Serializable
,但这就是它们的共同点。
此外,在您的示例中,泛型类型的用途是什么?该方法不接收任何参数,也不返回任何内容。也许你最好重载print
方法,如下所示:
void print(String s) {}
void print(Number n) {}