我是Java中的Generics的新手.我对使用泛型的好处几乎没有怀疑.请参考以下代码 -
<T extends Bounceable> void goGreen(T ob);
void goGreen(Bounceable ob);
Run Code Online (Sandbox Code Playgroud)
这里Bounceable是一个界面.
有人可以解释一下上面定义的区别.它们都限制调用者将对象传递给它,而不是Bounceable类型.如果可以在界面风格中实现相同的代码,那么使用Generics有什么好处?提前致谢.
如果你没有像你的例子中那样返回任何东西,你就没有通过使用泛型来获得任何东西.另一个声明同样有用.
另一方面,泛型允许您创建以下方法:
<T extends Bounceable> T goGreen(T ob);
Run Code Online (Sandbox Code Playgroud)
这将返回与传入的类型相同的对象,在很多场景中都会为您保存一个角色.
引用@LuiggiMendoza的评论中的优秀例子:
假设你有Ball implements Bounceable和Cellphone implements Bounceable.当您传递Ball给此方法时,您希望该方法返回a Ball而不是a Cellphone.
使用非通用方法无法实现这一点.
| 归档时间: |
|
| 查看次数: |
2334 次 |
| 最近记录: |