• 《java入门第一季》之泛型引入


    泛型的引入:

    首先看一段代码体会自动报错。

    // 看下面这个代码 自动报错
    		 String[] strArray = new String[3];
    		 strArray[0] = "hello";
    		 strArray[1] = "world";
    		 strArray[2] = 10;//因为指定了string类型,是不可以存储int类型数据的。会自动报错。

     集合也模仿着数组的这种做法,在创建对象的时候明确元素的数据类型。这样就不会在有问题了。
     而这种技术被称为:泛型。
     
     泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。

     格式:
      <数据类型>
    此处的数据类型只能是引用类型。
      好处:
    A:把运行时期的问题提前到了编译期间    --回想上边数组报错
    B:避免了强制类型转换
    C:优化了程序设计,解决了黄色警告线

    通过一段代码来认识泛型到底是什么。

    public class GenericDemo {
    	public static void main(String[] args) {
    		// 创建
    		ArrayList<String> array = new ArrayList<String>();// 告诉我们array这个集合里面只能包含string类型。
    
    		// 添加元素
    		array.add("hello");
    		array.add("world");
    		array.add("java");
    		// array.add(new Integer(100));
    		// array.add(10); // JDK5以后的自动装箱。但是由于泛型的引入,把错误提前告知了。
    
    		// 遍历
    		Iterator<String> it = array.iterator();
    		while (it.hasNext()) {
    			// ClassCastException
    			// String s = (String) it.next();【如果不指定泛型,返回的是Object类型,前面的integer时看不出有问题的,只有黄色警告线。但是这里会报                         // 错。 integer转不到string
    	                 String s = it.next();// 已经是String不用再强制类型转换。
    			System.out.println(s);
    		}


    <span style="font-family: Arial, Helvetica, sans-serif;"></span>

  • 相关阅读:
    面向对象之property
    mysql数据库基本操作
    mysql数据库操作
    初识多线程__上
    npm 安装express npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE
    markdown快捷键
    try_except__异常处理
    妹子图爬取__RE__BS4
    进程中的锁以及进程池
    pip升级到18.0版本过程中报错解决方法
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299748.html
Copyright © 2020-2023  润新知