首页 > 代码库 > Java重要技术(20)泛型之参数化类型的特点
Java重要技术(20)泛型之参数化类型的特点
1.1. 参数化类型的特点
参数化类型有以下特点:
(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(); }
Java重要技术(20)泛型之参数化类型的特点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。