【发布时间】:2011-11-05 17:59:33
【问题描述】:
如果您不使用 Java 泛型,我相信在同一个类中不可能有两个仅在返回类型上有所不同的方法。
换句话说,这将是非法:
public HappyEmotion foo(T emotion) {
// do something
}
public SadEmotion foo(T emotion) {
// do something else
}
在重载返回可能实现不同接口的泛型类型的方法时也是如此,例如如果以下两个方法存在于同一个类定义中:
public <T extends Happy> T foo(T emotion) {
// do something
}
public <T extends Sad> T foo(T emotion) {
// do something else
}
这是否违法?
【问题讨论】:
-
你试过编译吗? (符合标准的)编译器会立即告诉您什么是合法的,什么是非法的。一个更好的问题是“为什么......非法?”如果你不明白原因。
标签: java oop generics overloading