首页 > 代码库 > 36_入门泛型的基本应用
36_入门泛型的基本应用
package com.itcast.day2;import java.lang.reflect.Constructor;import java.util.ArrayList;import java.util.List;/** * 泛型入门 * * @author ljl * */public class GernericTest { public static void main(String[] args) throws Exception { /** * 不使用泛型时,eclipse中的黄色警告 Multiple markers at this line - ArrayList is a * raw type. References to generic type ArrayList<E> should be * parameterized 翻译:ArrayList是一个原始类型,参照泛型类型,ArrayList<E>应该被参数化。 */ ArrayList list = new ArrayList(); list.add(1); list.add(1L); list.add("abc"); // 运行期异常--类型转换: java.lang.ClassCastException: java.lang.String cannot be // cast to java.lang.Integer int i = (Integer) list.get(2); /** 使用了泛型 ***/ List<String> list2 = new ArrayList<String>(); list2.add("abc"); // list2.add(1);//编译报错。 // list2.add(1L);//编译报错。 // java.lang.ClassCastException: java.lang.String cannot be cast to // java.lang.Integer // int i=(Integer)list2.get(0);//编译报错。 String str = list2.get(0); System.out.println(str);// abc /** 反射中泛型的使用 ***/ // 01.Constructor未使用泛型,构造对象完毕之后不知道是String /**不使用泛型时,eclipse中的黄色警告 * Constructor is a raw type. References to generic type Constructor<T> should be parameterized * 翻译:Constructor是一个原始类型,应该参照泛型类Contructor<T>来参数化. */ Constructor constructor = String.class .getConstructor(StringBuffer.class); String ss = (String) constructor.newInstance(new StringBuffer("abc")); // 02.Constructor使用了泛型,规定好构造器的类型是Stirng类型的 Constructor<String> constructor2 = String.class .getConstructor(StringBuffer.class); String ss2 = constructor2.newInstance(new StringBuffer("abcd")); }}
36_入门泛型的基本应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。