Java:泛型方法、泛型类、泛型接口、类型通配符

简介: Java:泛型方法、泛型类、泛型接口、类型通配符

目录

要求:

JDK >= 1.5

泛型方法

package com.example.demo;
import java.io.IOException;
public class Demo {
    // 泛型方法
    public static <T> void printT(T value) {
        System.out.println(value);
    }
    public static void printObject(Object value) {
        System.out.println(value);
    }
    public static void main(String[] args) throws IOException {
        Demo.printT("Tom");
        Demo.printT(23);
        Demo.printObject("Tom");
        Demo.printObject(23);
    }
}

泛型类

package demo;
public class Box {
    private Object value;
    public void set(Object value) {
        this.value = value;
    }
    public Object get() {
        return this.value;
    }
    public static void main(String[] args) {
        Box box = new Box();
        box.set("Tom");
        String value = (String) box.get();
        System.out.println(value);
    }
}

使用泛型,可以不做类型强制转换

package demo;
public class Box<T> {
    private T value;
    public void set(T value) {
        this.value = value;
    }
    public T get() {
        return this.value;
    }
    public static void main(String[] args) {
        Box<String> box = new Box<>();
        box.set("Tom");
        String value = box.get();
        System.out.println(value);
    }
}

泛型接口

package demo;
interface IBox<T> {
    void set(T value);
    T get();
}
class Box<T> implements IBox<T> {
    private T value;
    @Override
    public void set(T value) {
        this.value = value;
    }
    @Override
    public T get() {
        return this.value;
    }
}
public class Demo {
    public static void main(String[] args) {
        Box<String> box = new Box<>();
        box.set("Tom");
        String value = box.get();
        System.out.println(value);
    }
}

类型通配符

public class Demo {
    public static void main(String[] args) {
        Box<String> box = new Box<>();
        printBox(box);
    }
    public static void printBox(IBox<?> box) {
        System.out.println(box);
    }
}

参考

https://www.runoob.com/java/java-generics.html

Java学习路线-7:泛型

聊一聊-JAVA 泛型中的通配符 T,E,K,V,?


相关文章
|
22小时前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
4 0
|
1天前
|
存储 Java
Java Scanner类详解与应用
Java Scanner类详解与应用
|
1天前
|
安全 前端开发 Java
Java语言中的类装载机制详解
Java语言中的类装载机制详解
|
1天前
|
Oracle 安全 Java
JAVA用Mail发送API的方法步骤教程
使用Java和Mail发送API实现自动化邮件发送,提高效率。步骤包括:1. 安装JDK并配置JAVA_HOME,2. 添加JavaMail库(可通过Maven或官网下载)。配置邮件发送涉及邮件服务器地址、端口和认证信息。创建邮件会话、邮件消息对象,然后使用Transport发送。示例代码展示完整流程。注意处理认证失败、连接问题和邮件发送失败等常见问题。
|
1天前
|
存储 Java
Java类与对象的技术性文章
Java类与对象的技术性文章
3 0
|
1天前
|
存储 安全 Java
Java的Map接口及其实现类的技术性文章
Java的Map接口及其实现类的技术性文章
6 0
|
13天前
|
安全 Java API
Java一分钟之-泛型通配符:上限与下限野蛮类型
【5月更文挑战第19天】Java中的泛型通配符用于增强方法参数和变量的灵活性。通配符上限`? extends T`允许读取`T`或其子类型的列表,而通配符下限`? super T`允许向`T`或其父类型的列表写入。野蛮类型不指定泛型,可能引发运行时异常。注意,不能创建泛型通配符实例,也无法同时指定上下限。理解和适度使用这些概念能提升代码的通用性和安全性,但也需兼顾可读性。
36 3
|
17天前
|
Java 编译器
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
|
17天前
|
Java Go
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
|
12月前
java202303java学习笔记第三十一天泛型通配符和综合练习1
java202303java学习笔记第三十一天泛型通配符和综合练习1
28 0