java中泛型

文章目录

泛型的概述
1.Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
2.早期的时候,使用Object来代表任意类型。但是这样在向上转型的是没有问题的,但是在向下转型的时候存在类型转换的问题,这样的程序其实是不安全的。所以Java在JDK5之后提供了泛型来解决这个问题
3.泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
4.泛型是一种把类型的明确工作推迟到创建对象或者调用方法的时候才去明确的特殊类型。

注意:类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)

泛型可用使用在方法、接口、类分别称作为:泛型类、泛型方法、泛型接口。

泛型类

格式:修饰符class类名<类型>{}

范例:public class Xd<T>{}

此处T可以随便写为任意标识,T、E、K、V等形式的参数常用于表示泛型

java 复制代码
package com.xd;

public class Xd<T> {

    private T t;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }


    public T view(T t){
        return t;
    }



}

泛型方法

格式:修饰符<类型>返回值类型 方法名(类型 变量名){...}

范例:public<T> void view(T t){...}

java 复制代码
package com.xd;

public class Xd {

    /**
     * public 修饰符
     * <T> 该方法使用泛型T
     * void 返回值
     * 方法的名称
     * 参数列表(T t)
     *
     */
    public <T>  T view(T t) {
        return t;
    }

}

泛型接口

格式:修饰符 interface 接口名<类型>{...}

范例:public interface Xd <T>{...}

java 复制代码
package com.xd;

public interface XdInterface<T> {

    T view(T t);

}
java 复制代码
package com.xd;

public class XdImpl<T> implements XdInterface<T> {
    @Override
    public T view(T t) {
        return t;
    }
}
java 复制代码
package com.xd;

public class Test01 {
    public static void main(String[] args) {
        XdImpl<String> stringXd = new XdImpl<>();
        String view = stringXd.view("1");
        System.out.println(view);
    }
}

类型通配符

1.类型通配符<?> 一般用于接受使用,不能够做添加

2.List<?>:表示元素类型未知的list,它的元素可以匹配任何类型

3.带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中

4.类型通配符上限:<? extends类型>List<?extends Xd>:它表示的类型是Xd或者子类

5.类型通配符下限:<? super 类型>List<?super Xd>:它表示的类型是Xd或者其父类型

可变参数

可变参数 又称 参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了。

格式:修饰符 返回值类型 方法名(数据类型... 量名){}

范例:public static int sum(int... a){}

可变参数 注意事项:

这里的可变参数变量其实是一个数组

如果一个方法有多个参数,包含可变参数,可变参数要放在最后

xjad工具

相关推荐
夏天的味道٥2 小时前
使用 Java 执行 SQL 语句和存储过程
java·开发语言·sql
冰糖码奇朵4 小时前
大数据表高效导入导出解决方案,mysql数据库LOAD DATA命令和INTO OUTFILE命令详解
java·数据库·sql·mysql
好教员好4 小时前
【Spring】整合【SpringMVC】
java·spring
浪九天5 小时前
Java直通车系列13【Spring MVC】(Spring MVC常用注解)
java·后端·spring
堕落年代5 小时前
Maven匹配机制和仓库库设置
java·maven
功德+n5 小时前
Maven 使用指南:基础 + 进阶 + 高级用法
java·开发语言·maven
香精煎鱼香翅捞饭6 小时前
java通用自研接口限流组件
java·开发语言
ChinaRainbowSea6 小时前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
囧囧 O_o6 小时前
Java 实现 Oracle 的 MONTHS_BETWEEN 函数
java·oracle
去看日出6 小时前
RabbitMQ消息队列中间件安装部署教程(Windows)-2025最新版详细图文教程(附所需安装包)
java·windows·中间件·消息队列·rabbitmq