ジェネリック<ディルラバ>の紹介

import java.util.ArrayList;

/**
 * 泛型入门测试类
 *
 *
 */

public class FanXingTest {
    
    
    public static void main(String[] args) {
    
    
        /*
            1,什么是泛型?
            答:泛型是在jdk1.5以后出的一个小工具,他是一个程序的语法糖,它只在程序编译器存在,不会再运行期存在,也就是在JVM虚拟机
            中是没有泛型这个概念的。
            2,泛型有什么用?
            答:泛型可以检查集合的类型是否符合预期,泛型只是一个检查者,将异常拦截在编译期
            3,泛型怎么用?
            泛型可以用在接口 方法 和返回值上
            如:
            public interface Collection<E> {}  接口上
            public <E> void print(E e) {}   方法上
            这里需要注意如果在方法返回值前声明了一个<E>表示后面出现的E是泛型,而不是普通的java变量。
            4,泛型在开发时的常用的名称及其含义?
            答:
                <E>  E名称通常在集合中使用 也就是Element
                <?>  ?表示不确定的JAVA类型
                <T>  Type(Java 类)
                <K>  Key(键)
                <V>  Value(值)
         */


        ArrayList arrayList = new ArrayList();  //不使用泛型时可以向集合中存放任何类型的元素
        arrayList.add("String");  //存放string 类型
        arrayList.add(0.99);  //存放double类型
        arrayList.add(10);    //存放 int 类型

        //但是取得时候可能会出现一些类型转换的错误
        for (Object obj : arrayList) {
    
    
            String obj1 = (String) obj;
            System.out.println(obj1);
        }

        /*
         控制台会报错: 无法将Double类型转换成string类型
         String
         Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String
	     at APITestPackage.FanXingTest.main(FanXingTest.java:43)
         */


        //<String> 尖括号里如果规定了类型那么集合中存放的只能是规定的类型 否者代码会编译报错
        ArrayList<String> stringArrayList = new ArrayList<>();

        //向集合中添加元素
        stringArrayList.add("string");
        // stringArrayList.add(0.99);  会在编译时报错
        // stringArrayList.add(10);    会在编译时报错

        for (Object obj : stringArrayList) {
    
    
            String obj1 = (String) obj;
            System.out.println(obj1);
        }

        //正常输出:string

    }

}

あなたは学校を失いましたか?

おすすめ

転載: blog.csdn.net/DoChengAoHan/article/details/108002109