当前位置: 首页 > article >正文

java中入参和出参使用泛型实例

下面是一个复杂的示例,展示了如何在 Java 中使用泛型来处理入参和出参。这个示例包括一个通用的服务类,该服务类可以处理不同类型的数据,并且返回相应的结果。

示例背景
假设我们有一个通用的服务类 GenericService,它可以处理不同类型的数据(例如 Integer、String 等),并且返回处理后的结果。我们将使用泛型来实现这一功能。

实体类
首先,定义一些简单的实体类,这些实体类将用于示例中的数据处理。

Java
深色版本
public class Data<T> {
    private T value;

    public Data(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "Data{" +
                "value=" + value +
                '}';
    }
}
服务接口
定义一个通用的服务接口 GenericService,该接口包含一个处理数据的方法。

Java
深色版本
public interface GenericService<T> {
    Data<T> processData(Data<T> input);
}
服务实现
实现 GenericService 接口,提供具体的处理逻辑。

Java
深色版本
public class IntegerService implements GenericService<Integer> {
    @Override
    public Data<Integer> processData(Data<Integer> input) {
        // 处理整数数据,例如乘以2
        int processedValue = input.getValue() * 2;
        return new Data<>(processedValue);
    }
}

public class StringService implements GenericService<String> {
    @Override
    public Data<String> processData(Data<String> input) {
        // 处理字符串数据,例如转为大写
        String processedValue = input.getValue().toUpperCase();
        return new Data<>(processedValue);
    }
}
客户端代码
编写客户端代码,使用 GenericService 来处理不同类型的数据。

Java
深色版本
public class Client {
    public static void main(String[] args) {
        // 创建 IntegerService 实例
        GenericService<Integer> integerService = new IntegerService();
        
        // 创建 Data 对象
        Data<Integer> integerData = new Data<>(5);
        
        // 处理数据
        Data<Integer> processedIntegerData = integerService.processData(integerData);
        System.out.println("Processed Integer Data: " + processedIntegerData);

        // 创建 StringService 实例
        GenericService<String> stringService = new StringService();
        
        // 创建 Data 对象
        Data<String> stringData = new Data<>("hello");
        
        // 处理数据
        Data<String> processedStringData = stringService.processData(stringData);
        System.out.println("Processed String Data: " + processedStringData);
    }
}
详细解释
实体类 Data:
Data 类是一个泛型类,可以存储任何类型的数据。
value 字段用于存储实际的数据。
提供了构造函数、getter 和 setter 方法,以及 toString 方法。
服务接口 GenericService:
GenericService 是一个泛型接口,定义了一个 processData 方法,该方法接受一个 Data 对象并返回一个 Data 对象。
泛型参数 T 表示处理的数据类型。
服务实现 IntegerService 和 StringService:
IntegerService 实现了 GenericService<Integer> 接口,处理整数数据。
StringService 实现了 GenericService<String> 接口,处理字符串数据。
每个服务类在 processData 方法中实现了具体的处理逻辑。
客户端代码:
创建 IntegerService 和 StringService 实例。
创建 Data 对象,分别存储整数和字符串数据。
调用 processData 方法处理数据,并打印处理后的结果。
通过这种方式,你可以使用泛型来实现一个通用的服务类,处理不同类型的数据,并返回相应的结果。希望这些示例能帮助你更好地理解和使用 Java 泛型。


http://www.kler.cn/news/328256.html

相关文章:

  • yjs09——pandas介绍及相关数据结构
  • 基于深度学习的沉浸式体验增强
  • 【内网渗透】最保姆级的春秋云镜Flarum打靶笔记
  • Qt_绘图
  • 实验1.2 熟悉VRP基本操作
  • 基于深度学习的虚拟环境生成
  • 【SQL】未订购的客户
  • 用友U8 CRM 多个接口存在SQL注入漏洞
  • 开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的数据运营策略与价值创造
  • 李宏毅机器学习2022-HW8-Anomaly Detection
  • 云手机可以解决TikTok运营的哪些问题?
  • 【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL67
  • 人工智能_机器学习099_PCA数据降维算法_SVD分解矩阵原理002_酉矩阵_共轭矩阵_全矩阵_符号翻转_奇异值分解代码实现---人工智能工作笔记0224
  • 使用OpenAI最新模型o1的6种方式,总有一种适合你!
  • docker pull 超时的问题如何解决
  • git直接推送项目到仓库
  • DDL 超时,应该如何解决 | OceanBase 用户问题集萃
  • 10.1 Linux_并发_进程基本知识
  • 如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法
  • ERROR [internal] load metadata for docker.io/library/openjdk:8
  • Spring Cloud Gateway接入WebSocket:实现实时通信
  • 详解代理模式-【静态代理与JDK动态代理】(非常的斯国一)
  • GO语言中make与new的区别
  • AI文本生成UI稿神器Galileo,程序员做独立开发必备
  • 【Linux-基础IO】如何理解Linux下一切皆文件磁盘的介绍
  • 链表的底层实现(Java版)(单向,双向,循环)
  • 2024年云南省职业院校技能大赛-云计算应用
  • ECMAScript标准
  • 【Android 14源码分析】Activity启动流程-1
  • 15分钟学 Python 第31天 :Web Scraping