Bre*_*nes 9 java oop generics overloading
如果你不使用Java Generics,我相信在同一个类中只有两个方法不同,它们的返回类型不同.
换句话说,这将是非法的:
public HappyEmotion foo(T emotion) {
// do something
}
public SadEmotion foo(T emotion) {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
在重载返回可能实现不同接口的泛型类型的方法时也是如此,例如,如果在同一个类定义中存在以下两个方法:
public <T extends Happy> T foo(T emotion) {
// do something
}
public <T extends Sad> T foo(T emotion) {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
这是非法的吗?
这是合法的,因为输入参数根据类型而有所不同.
因此,以下是合法的,
public <T extends Happy> T foo(T emotion) {
// do something
}
public <T extends Sad> T foo(T emotion) {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
但是以下不是,
public <T extends Happy> String foo(T emotion) {
// do something
}
public <T extends Happy> T foo(T emotion) {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
谢谢...