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,如需转载请自行联系原作者
相关文章
|
5月前
|
Java 编译器 容器
Java 泛型
Java 泛型
31 10
|
16天前
|
Java API
[Java]泛型
本文详细介绍了Java泛型的相关概念和使用方法,包括类型判断、继承泛型类或实现泛型接口、泛型通配符、泛型方法、泛型上下边界、静态方法中使用泛型等内容。作者通过多个示例和测试代码,深入浅出地解释了泛型的原理和应用场景,帮助读者更好地理解和掌握Java泛型的使用技巧。文章还探讨了一些常见的疑惑和误区,如泛型擦除和基本数据类型数组的使用限制。最后,作者强调了泛型在实际开发中的重要性和应用价值。
14 0
[Java]泛型
|
1月前
|
存储 安全 Java
Java 泛型 详解
Java 泛型是 Java 5 引入的特性,允许在类、接口和方法中定义类型参数,提供类型安全、代码重用性和灵活性。泛型包括类型参数、泛型类和接口,以及泛型方法。通过定义类型参数如 `&lt;T&gt;`,可以在编译时检查类型,避免强制类型转换错误。泛型还支持类型边界和通配符,使代码更加灵活和高效。Java 集合框架广泛使用泛型实现类型安全的集合存储。理解泛型的基本概念和使用技巧有助于提高代码质量和可维护性。
|
6月前
|
存储 安全 Java
JAVA的泛型
JAVA的泛型
24 0
|
IDE Java 开发工具
Java的泛型是什么?为什么要用它?
Java的泛型是什么?为什么要用它?
173 0
|
6月前
|
存储 Java 编译器
JAVA中的泛型
泛型, 泛型的语法, 泛型类 , 基本数据类型和对应的包装类 , 泛型方法,  语法, 小结
54 1
|
6月前
|
Java
java 泛型
java 泛型
44 0
|
安全 Java 编译器
Java的泛型
泛型程序设计(Generic programming) 意味着编写的代码可以被很多不同类型的对象所重用。泛型对于集合类尤其有用,例如,ArrayList 就是一个无处不在的集合类。一个 ArrayList 类可以聚集任何类型的对象,这是一个泛型程序设计的实例。
|
Java 数据库
泛型的总结(Java)
泛型的介绍: 首先,明确一下,泛型是为了给集合指定对象类型而设立的, 为了解决:假设当往集合加入元素是String类型,你有没有发现一个奇怪的现象,当你把对象取出时,往往却变成了Object类型,也就是说,当你往集合里添加元素时,他不会记住你加的是什么类型,统一返回时把你当成Object类型,所以为了解决这个类型前后不一致的问题,就出现了泛型。 接下来看一下泛型的实例化举例: ArrayList&lt;String&gt; List =new ArrayList&lt;&gt;(); &lt
104 0
泛型的总结(Java)
|
安全 Java
Java 泛型详解
1.什么是泛型? (1)泛型,即参数化类型。可以理解为,广泛的类型。是jdk5.0出现的新特性,用于解决数据类型的安全性问题。 (2)我们平时用的ArrayList就使用了泛型,List<T t> list = new ArrayLIst<>(); ①其中,T不代表值,而是表示类型 ②任意字母都可以。常用T表示,是Type的缩写 2.泛型的好处 泛型把运行时异常,转到了编译时异常。只要程序编译时没有问题,就不会产生ClassCastException。 3.泛型的定义与使用
102 0
下一篇
无影云桌面