gpt4 book ai didi

java - 您可以使用泛型进行方法重载并且只更改方法签名的泛型类型吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:25 24 4
gpt4 key购买 nike

如果您不使用 Java 泛型,我相信同一个类中不可能有两个仅在返回类型上不同的方法。

换句话说,这将是非法:

public HappyEmotion foo(T emotion) {
// do something
}

public SadEmotion foo(T emotion) {
// do something else
}

当重载返回可能实现不同接口(interface)的泛型类型的方法时也是如此,例如如果以下两个方法出现在同一个类定义中:

public <T extends Happy> T foo(T emotion) {
// do something
}

public <T extends Sad> T 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
}

但是下面不是,

public <T extends Happy> String foo(T emotion) {
// do something
}

public <T extends Happy> T foo(T emotion) {
// do something else
}

谢谢...

关于java - 您可以使用泛型进行方法重载并且只更改方法签名的泛型类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com