gpt4 book ai didi

java - 使用泛型有什么好处?

转载 作者:行者123 更新时间:2023-12-01 08:00:23 24 4
gpt4 key购买 nike

我是 Java 泛型的新手。我对使用泛型的好处毫不怀疑。请引用以下代码 -

<T extends Bounceable> void goGreen(T ob);

void goGreen(Bounceable ob);

这里 Bounceable 是一个接口(interface)。

有人可以解释一下上述定义有什么区别吗?它们都限制调用者向其传递非 Bounceable 类型的对象。如果可以用接口(interface)风格实现相同的代码,那么使用泛型有什么好处呢?提前致谢。

最佳答案

如果您没有像示例中那样返回任何内容,那么您就没有通过使用泛型获得任何东西。另一个声明同样有用。

另一方面,泛型允许您创建以下方法:

<T extends Bounceable> T goGreen(T ob);

这会返回一个与您传入的类型相同的对象,这在很多情况下可以为您节省强制转换。
引用@LuiggiMendoza 评论中的优秀例子:
假设您有 Ball 实现 BounceableCellphone 实现 Bounceable。当您将 Ball 传递给此方法时,您希望该方法返回 Ball,而不是 Cellphone

使用非通用方法是不可能实现这一点的。

关于java - 使用泛型有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750193/

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