从Java 5 (Tiger) 开始,就支持了泛型(模板)。
1. 模板类
我们可以这样定义模板类
2. 模板函数
如果只是某个函数需要支持泛型,可以定义一个模板函数
3. 技巧
3.1 定义一个返回子类对象的函数
通常情况下,定义一个类时,如果想要返回自身,我们是返回 this ,但如果想要返回子类对象,而又不想让调用者进行类型转换的话,则需要使用一点技巧。
定义父类
考虑到可能有多处返回的情况,通过单独定义一个 self 方法,就能避免每处返回都写 @SuppressWarnings。
定义子类
使用:
上例中,先调用继承自父类的 setValue 方法为变量赋值,紧接着调用子类的 displayValue 显示该值。
如果不使用上而的技巧在返回时进行类型转换,那就只能由调用者进行强制类型转换,如下:
显然,这样的调用方式很不友好。
声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权,转载请注明出处。