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

188 篇文章 7 订阅

下面是一个复杂的示例,展示了如何在 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 泛型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值