Java学习 Day14 泛型

本文介绍了Java泛型的起源,旨在提供编译时的数据类型检查,以避免运行时异常。通过示例展示了泛型在集合类中的使用,如ArrayList,强调了泛型约束集合元素类型的重要性。此外,还讲解了泛型的通用代码编写,例如`<E> void print(E[] a)`方法,以及泛型在方法签名中的使用规则。文章通过多个示例展示了泛型在实际编程中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.泛型是怎么来的?
  想要模仿数组数据类型检查

  数组的好处:在编译时期就检查数据的类型 ,如果不是要求的类型编译器就报错。

2.泛型通常结合着集合一起使用。

3.引入泛型 - 主要目的是想通过泛型来约束集合中元素的类型。

4.泛型的好处:可以把报错的时机提前,在编译器就报错,而不是运行后才抛出异常
  在向集合中添加元素,会先检查元素的数据类型,不是要求的类型会发生编译错误

5.<type>--type的值应该如何写?
  需要查看要存放点数据类型是什么,依据类型来定义,
  但是type必须是引用类型,不能是基本类型。

package cn.sk.generic;

import java.util.ArrayList;
import java.util.List;

/**本类用于测试泛型的优点*/
public class TestGeneric1 {
    public static void main(String[] args) {
      
        //1.创建一个用来存放String类型数据的长度为5的数组s
        String[] s = new String[5];
        s[2] = "泡泡";
        s[4] = "涛涛";
    
        /*s[0] = 1;
        s[1] = 2.2;
        s[3] = 'a';*/

        List list = new ArrayList();//注意需要导包:import java.util.List;
        list.add("江江");
        list.add(1);
        list.add(8.8);
        list.add('a');
        System.out.println(list);
      
        List<String> list2 = new ArrayList<String>();
        list2.add("s");//约束了类型以后,只能传String类型
       
        List<Integer> list3 = new ArrayList<Integer>();
        list3.add(100);
        list3.add(200);
        System.out.println(list3);
    }
}

 

 

6.泛型可以实现通用代码的编写,使用E表示元素的类型是Element类型。

7.泛型的语法要求:如果在方法上使用泛型,必须两处同时出现 一个是传入的参数的类型,

另一个是方法声明上返回值类型之前的泛型。

ackage cn.sk.generic;
/**本类用于测试泛型的优点2*/
public class TestGeneric2 {
    public static void main(String[] args) {
        Integer[] a ={1,2,3,4,5};
        String[] b = {"上","山","打","老","虎"};
        Double[] c = {6.0,6.6,6.66,6.666};
        print(a);
        print(b);
        print(c);
    }
    
    public static <E> void print(E[] a){
        for (E o:a){
            System.out.println(o);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值