JAVA学习代码——泛型

来源:互联网 发布:html 展示json数据 编辑:程序博客网 时间:2024/06/06 05:13

泛型的定义

泛型的格式

package 泛型;import java.util.ArrayList;import java.util.List;/** * 如何用泛型规定集合的类型:泛型集合里面可以存入泛型类型的实例,也可以存入泛型的子类型的实例 * 泛型不能为基本类型的,只能是引用类型,非要使用基本类型,需要使用它们的包装类(int->Integer。。。。) */public class TestGenneric {/** * 带有泛型——Course,的List类型属性, <>括号中为规定的类型,List只能存放规定的类型 */public List<Course> courses;// 为了方便,定义为public,工作中应该为private// 在构造方法中初始化courses属性,public TestGenneric() {// 定义的courses是带有泛型的,所以实例化的时候也要定义为泛型this.courses = new ArrayList<Course>();}/** * 测试添加 */public void testAdd() {Course cr1 = new Course("1", "大学语文");courses.add(cr1);// 泛型编译期间的检查:泛型集合中不能添加泛型集合规定的类型及其子类型以外的对象,否则会报错// 下面语句报错:类型List<Course>中的方法add(Course)对于参数(String)不适用// courses.add("能否添加一些奇怪的东西呢???");Course cr2 = new Course("2", "JAVA基础");courses.add(cr2);}/** * 测试循环遍历foreach */public void testForeach() {// Course cr:直接作为Course类型取出,List集合里的每一个元素都为Course类型for (Course cr : courses) {System.out.println(cr.getId() + ":" + cr.getName());}}/** * 泛型集合可以添加泛型子类的对象实例 */public void testChild(){ChildCourse ccr= new ChildCourse();//创造一个ChildCourse类型的对象实例ccrccr.setId("3");//利用set写入idccr.setName("我是子类型的课程对象实例");courses.add(ccr);}/** * 泛型不能使用基本类型 */public void testBasicType(){//List<int>list= new ArrayList<int>();//报错:int上有语法错误List<Integer>list= new ArrayList<Integer>();list.add(1);System.out.println("基本类型的包装类作为泛型:"+list.get(0));}// --------主函数---------public static void main(String[] args) {TestGenneric tg = new TestGenneric();tg.testAdd();tg.testForeach();tg.testChild();tg.testForeach();tg.testBasicType();}}


0 0
原创粉丝点击