标签:others 引用 strong sys 语法 out amp object code
参数化类型有以下特点:
(1)参数化类型和没有类型参数的原始类型在编译后没有本质区别。
(2)类型参数不同的两个参数化类型,不能混用。
public class GenericParameterTest { //参数化类型T,可以为String,Integer等引用类型。 static class Sample<T> { //不带参数的构造函数。 public Sample(){ this.obj = null; } public Sample(T obj){ this.obj = obj; } //参数化类型作为返回值的类型。 public T work(){ System.out.println("work:"+this.obj); return this.obj; } //参数化类型作为参数的类型。 public void update(T obj){ this.obj = obj; } //参数化类型作为属性的类型。 private T obj; } public static void main(String[] args) { //语法错误。错误用法。 //Sample<int> anotherSample = new Sample<int>(1); //正确用法。T是Integer. Sample<Integer> anotherSample = new Sample<Integer>(1); //正确用法:不使用类型参数,相当于Sample<String>。 //此时可以推导出类型参数为String。 Sample sam = new Sample("Hello"); //错误用法,不能将String转化为Integer. //Integer result = sample.work(); //正确用法。String work(); String result = sample.work(); //原始类型。相当于Sample<Object>但是不同于Sample<Object>。 //此时只能推导出类型参数为Object。 Sample sa = new Sample(); //错误用法,不能将Object转化为String. //String res = sa.work(); //正确用法。Object work(); Object res = sa.work(); }
标签:others 引用 strong sys 语法 out amp object code
原文地址:http://www.cnblogs.com/coe2coe/p/6680177.html