Java中的泛型

简介:

案例一,使用泛型可以限制储存的值类型。

package ch9;
import java.util.*;

/**
 * Created by Jiqing on 2016/11/28.
 */
public class GenericList {
    public static void main(String[] args) {
        // 创建一个只想保存字符串的List集合
        List<String> strList = new ArrayList<String>(); // 泛型
        strList.add("疯狂Java讲义");
        strList.add("疯狂Android讲义");
        // 下面代码将引起编译错误
        // strList.add(5);
        strList.forEach(str -> System.out.println(str.length()));
    }
}

案例二,菱形语法,简洁方便

package ch9;
import java.util.*;

/**
 * Created by Jiqing on 2016/11/28.
 */
public class DiamondTest {
    // 泛型的菱形语法
    public static void main(String[] args) {
        // Java自动推断出ArrayList的<>里应该是String
        List<String> books = new ArrayList<>();
        books.add("疯狂Java讲义");
        books.add("疯狂Android讲义");
        books.forEach(ele -> System.out.println(ele.length()));

        Map<String,List<String>> schoolsInfo = new HashMap<>();
        List<String> schools = new ArrayList<>();
        schools.add("三打白骨精");
        schools.add("大闹天宫");
        schoolsInfo.put("孙悟空",schools);
        schoolsInfo.forEach((key,value) -> System.out.println(key + "-->" +value)); //孙悟空-->[三打白骨精, 大闹天宫]
    }
}

案例三,定义类使用泛型声明

package ch9;

import java.util.DoubleSummaryStatistics;

/**
 * Created by Jiqing on 2016/11/28.
 */
public class Apple<T>{ // 定义类使用泛型声明
    // 使用T类型形参定义实例变量
    private T info;
    public Apple() {}
    // 使用T类型定义构造器
    public Apple(T info) {
        this.info = info;
    }

    public void setInfo(T info) {
        this.info = info;
    }

    public T getInfo() {
        return this.info;
    }

    public static void main(String[] args) {
        // 由于传给T形参的是String  所以构造器参数只能是String
        Apple<String> a1 = new Apple<>("苹果");
        System.out.println(a1.getInfo()); // 苹果

        // 由于传给T形参的是Double,所以构造器参数只能是Double
        Apple<Double> a2 = new Apple<>(5.67);
        System.out.println(a2.getInfo()); // 5.67
    }
}


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6111673.html,如需转载请自行联系原作者
相关文章
|
4月前
|
机器学习/深度学习 安全 Java
Java 泛型
5月更文挑战第17天
|
4月前
|
安全 Java 机器人
|
4月前
|
Java
|
安全 Java
Java 中泛型的详解
Java 中泛型的详解
37 1
|
4月前
|
Java API
[Java]泛型
[Java]泛型
68 0
[Java]泛型
|
4月前
|
存储 Java 编译器
Java——泛型
Java——泛型
38 0
|
4月前
|
存储 安全 Java
JAVA的泛型
JAVA的泛型
20 0
|
4月前
|
存储 Java 编译器
JAVA中的泛型
泛型, 泛型的语法, 泛型类 , 基本数据类型和对应的包装类 , 泛型方法,  语法, 小结
51 1
|
11月前
|
存储 安全 Java
Java-泛型
本章专题与脉络 泛型概述 生活中的例子 举例1:中药店,每个抽屉外面贴着标签 举例2:超市购物架上很多瓶子,每个瓶子装的是什么,有标签 举例3:家庭厨房中: Java中的泛型,就类似于上述场景中的标签。 泛型的引入 在Java中,我们在声明方法时,当在完成方法功能时如果有未知的数据需要参与,这些未知的数据需要在调用方法时才能确定,那么我们把这样的数据通过形参表示。在方法体中,用这个形参名来代表那个未知的数据,而调用者在调用时,对应的传入实参就可以了。 受以上启发,JDK1.5设计了泛型的概念。泛型即为“类型参数”,这个类型参数在声明它的类、接口或方法中,代表未知的某种通用
35 0
|
Java 编译器 容器
Java 中的泛型
Java 中的泛型
79 0
Java 中的泛型