Java-泛型

简介: 泛型

泛型

package com.bilibili;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/19 13:31
 */

public class Score <T,U>{
   
    String name;
    U id;
    T value;

    public Score(String name, U id, T value) {
   
        this.name = name;
        this.id = id;
        this.value = value;
    }

    public T  getValue() {
   
        return value;
    }
}



package com.bilibili;

import java.util.Scanner;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
   
    public static void main(String[] args) {
   
        //泛型定义初始化
        //使用时,才来定义,泛型
        Score<String,Integer> score = new Score<>("高等数学",001,"优秀");

        //待定类型不能实例化,因为其类型不明确,无法调用构造方法

        //静态内容无法使用泛型,而且泛型只能是确定一个泛型,只能是一个引用类型
        //不能用基本类型,只能使用其包装类

        //泛型方法

        //如果需要泛型有一个类型的限制,用到泛型界限的知识,比如泛型中,要是只能填数字,可以写成
        //T<T extends Number>
        //通配符:?,可以接受任何类型,后面也可以跟上限,限制父类
        //同样,泛型也有下界限制,但是只能用在通配符中,其他地方不行
        //下界表示其子类不可再使用
        //<? super Object>

        //泛型类型会被擦除,编译时成为Object类型,具体使用时再来明确
        //泛型类继承重写父类方法时,会一并重写一个桥接方法,调用满足类型的对应子类方法
        //类型擦除机制方便后面使用集合类,避免过多的类型转换,同时也是Java向下兼容的体现,所以泛型使用才会加上一些限制

        //限制一 类型判断时,泛型只允许是原始类型,Object或者是定义的界限
        //限制二 不支持创建参数化数组,只能是其原始类型,即未被指明类型的数组
        //

    }
    public static <T> T test(T t1) {
   
        //方法会在使用的时候自动明确类型
        return t1;
    }
}
目录
相关文章
|
2天前
|
存储 Java 编译器
深入理解 Java 泛型和类型擦除
【4月更文挑战第19天】Java泛型是参数化类型,增强安全性与可读性,但存在类型擦除机制。类型擦除保证与旧版本兼容,优化性能,但也导致运行时无法访问泛型信息、类型匹配问题及数组创建限制。为应对这些问题,可使用Object类、instanceof运算符,或借助Guava库的TypeToken获取运行时类型信息。
|
2天前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
2天前
|
Java
java中的泛型类型擦除
java中的泛型类型擦除
14 2
|
2天前
|
安全 Java 程序员
Java 泛型
Java 泛型
14 0
|
2天前
|
安全 Java 编译器
java泛型浅谈
java泛型浅谈
6 1
|
2天前
|
存储 安全 Java
掌握8条泛型规则,打造优雅通用的Java代码
掌握8条泛型规则,打造优雅通用的Java代码
掌握8条泛型规则,打造优雅通用的Java代码
|
2天前
|
Java
JAVA难点包括异常处理、多线程、泛型和反射,以及复杂的分布式系统知识
【5月更文挑战第2天】JAVA难点包括异常处理、多线程、泛型和反射,以及复杂的分布式系统知识。入坑JAVA因它的面向对象特性、平台无关性、强大的标准库和活跃的社区支持。
42 2
|
2天前
|
安全 Java 编译器
【JAVA】泛型和Object的区别
【JAVA】泛型和Object的区别
|
2天前
|
存储 算法 Java
滚雪球学Java(20):Java泛型与枚举:提升代码灵活性与可读性
【4月更文挑战第9天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 1
滚雪球学Java(20):Java泛型与枚举:提升代码灵活性与可读性
|
2天前
|
Java