• 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
        }
    }
    
    
  • 相关阅读:
    DevEco Studio常用设置
    idea报错:Failed to execute goal org.codehaus.mojo:execmavenplugin:3.0.0:exec (defaultcli) on
    HarmonyOS实战 — 第一个入门 HelloWorld
    RabbitMQ入门之HelloWorld
    鸿蒙系统简介
    阿里云短信验证出现签名不合法(不存在或被拉黑)
    鸿蒙和安卓的对比
    关于 SVN 没有加锁 却在 update 和 commit 时 提示 有锁
    ibatis xml 数据库 批量新增 与批量删除
    看不懂的类型转换(有待解决)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6111673.html
Copyright © 2020-2023  润新知