范型的定义与使用的示例
来源:互联网 发布:剑网3捏脸数据怎么导入 编辑:程序博客网 时间:2024/06/05 03:25
import org.junit.Test;public class TestCase {/** * 范型:利用编译器实现的参数化类型,优点可以利用编译器检查限制数据类型,减少软件在运行期的错误! * 可以减少数据类型的转换麻烦。 * 范型是利用编译器实现的(假范型),在运行期间没有范型检查,利用编译器擦除实现的。 */@Test public void testShop(){//无法限制 参数 的类型!Shop petShop = new Shop();petShop.addProduct(new Food("驴打滚")); //petShop.addProduct(new Pet("龙猫")); //Pet pet = (Pet)petShop.buy();//会发送类型转换的运行错误//利用 类型参数Pet约定了商店销售商品的类型Store<Pet> petStore = new Store<Pet>();//petStore.addProduct(new Food("驴打滚")); petStore.addProduct(new Pet("龙猫")); Pet pet = petStore.buy();//自动转换类型,类安全的转换//编译期间,提前约束数据类,避免了运行期间数据类型转换的错误String s = Store.getName("Tom", String.class);Integer n = Store.getName(5, Integer.class);System.out.println(s);System.out.println(n);}}/** * 范型类声明商店 */class Store<P>{P product;public Store() {}public void addProduct(P product){this.product = product;}public P buy(){return product;}//方法范型, 约束参数或返回值的类型public static <E> E getName(E type, Class<E> cls) {System.out.println("Call getName"); return type;}}class Shop{Object product;public Shop() {}public void addProduct(Object product){this.product = product;}public Object buy(){return product;}}
0 0
- 范型的定义与使用的示例
- 类、方法、对象的定义与使用示例
- 位域结构体的定义示例及其与联合体的定义使用
- 函数指针的定义与操作示例
- 泛型的定义与使用
- 泛型方法的定义与使用
- 泛型接口的定义与使用
- 泛型接口的定义与使用
- 联合的定义与使用
- 结构的定义与使用
- 余数%的定义与使用
- 触发器的定义与使用
- session的定义与使用
- 泛型类的定义与使用
- SQL的定义与使用
- 视图的定义与使用
- 数组的定义与使用
- 游标的定义与使用
- POJ 1106 Transmitters(计算几何 极角排序啊)
- 用到的drawable selector和shape自定义
- OculusDK2配置及在Unity中的使用(OVRManager.cs导入报错解决)
- S3C2440中断代码的深层次分析
- 基于Mongodb进行分布式数据存储
- 范型的定义与使用的示例
- Ubuntu 安装mysql和简单操作
- 素数筛选法
- Android广播使用
- apt-get install lrzsz
- 读书笔记:漫漫自由路--曼德拉自传
- java后台访问请求乱码问题
- 线程1: i++; i++; 线程2: i+=2; 的问题 (2013年某公司笔试题目)
- Dom4j 操作XML