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,如需转载请自行联系原作者
相关文章
|
3月前
|
存储 安全 Java
🌱Java零基础 - 泛型详解
【10月更文挑战第7天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 1
|
4月前
|
存储 安全 搜索推荐
Java中的泛型
【9月更文挑战第15天】在 Java 中,泛型是一种编译时类型检查机制,通过使用类型参数提升代码的安全性和重用性。其主要作用包括类型安全,避免运行时类型转换错误,以及代码重用,允许编写通用逻辑。泛型通过尖括号 `&lt;&gt;` 定义类型参数,并支持上界和下界限定,以及无界和有界通配符。使用泛型需注意类型擦除、无法创建泛型数组及基本数据类型的限制。泛型显著提高了代码的安全性和灵活性。
|
8月前
|
安全 Java 程序员
Java 泛型
Java 泛型
40 0
|
8月前
|
安全 Java 机器人
|
IDE Java 开发工具
Java的泛型是什么?为什么要用它?
Java的泛型是什么?为什么要用它?
184 0
|
8月前
|
存储 Java 编译器
Java——泛型
Java——泛型
52 0
|
8月前
|
存储 Java 编译器
JAVA中的泛型
泛型, 泛型的语法, 泛型类 , 基本数据类型和对应的包装类 , 泛型方法,  语法, 小结
67 1
|
存储 安全 Java
Java-泛型
本章专题与脉络 泛型概述 生活中的例子 举例1:中药店,每个抽屉外面贴着标签 举例2:超市购物架上很多瓶子,每个瓶子装的是什么,有标签 举例3:家庭厨房中: Java中的泛型,就类似于上述场景中的标签。 泛型的引入 在Java中,我们在声明方法时,当在完成方法功能时如果有未知的数据需要参与,这些未知的数据需要在调用方法时才能确定,那么我们把这样的数据通过形参表示。在方法体中,用这个形参名来代表那个未知的数据,而调用者在调用时,对应的传入实参就可以了。 受以上启发,JDK1.5设计了泛型的概念。泛型即为“类型参数”,这个类型参数在声明它的类、接口或方法中,代表未知的某种通用
45 0
|
Java
Java 泛型
Java 泛型
79 0
|
Java 编译器 API
【Java】泛型
【Java】泛型
123 0
【Java】泛型

热门文章

最新文章