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,?


相关文章
|
12天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
36 17
|
4天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
9天前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
8天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
9天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
20 2
|
Java
JAVA方法的定义
JAVA方法的定义
83 0
|
5月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
40 1
|
6月前
|
存储 Java
Java数组与带参数方法:定义、调用及实践
Java数组与带参数方法:定义、调用及实践
68 1
|
6月前
|
存储 Java
Java中带返回值方法的定义与调用技术
Java中带返回值方法的定义与调用技术
92 1
|
6月前
|
Java
Java一分钟之-方法定义与调用基础
【5月更文挑战第8天】本文介绍了Java编程中的方法定义和调用,包括基本结构、常见问题和避免策略。方法定义涉及返回类型、参数列表和方法体,易错点有返回类型不匹配、参数错误和忘记返回值。在方法调用时,要注意参数传递、静态与非静态方法的区分,以及重载方法的调用。避免错误的策略包括明确返回类型、参数校验、理解值传递、区分静态和非静态方法以及合理利用重载。通过学习和实践,可以提升编写清晰、可维护代码的能力。
134 0