You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确实现Transformer泛型接口,完成Person到Subscriber列表转换?

正确实现Transformer泛型接口的PersonSubscriberTransformer类

现有泛型接口定义

public interface Transformer<FROM, TO> {
    TO transform(FROM value);
}

你的错误实现问题

你当前的PersonSubscriberTransformer类错误使用原始类型实现Transformer,还额外定义了未使用的泛型参数<FROM, TO>,导致重写transform方法只能用Object类型,无法直接指定List<Person>作为参数、List<Subscriber>作为返回值,从而触发方法签名不匹配的错误。

错误代码:

public class PersonSubscriberTransformer<FROM, TO> implements Transformer {
    private Predicate<Person> predicate;
    public PersonSubscriberTransformer(Predicate<Person> predicate) {
        this.predicate = predicate;
    }
    @Override
    public Object transform(Object value) {
        return null;
    }
}

正确实现方案

核心修正点

  1. 移除类上多余的<FROM, TO>泛型参数,直接指定实现Transformer<List<Person>, List<Subscriber>>,明确接口的泛型类型
  2. 重写transform方法时,使用具体的List<Person>参数和List<Subscriber>返回值
  3. 实现Person到Subscriber的转换逻辑

完整正确代码

import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class PersonSubscriberTransformer implements Transformer<List<Person>, List<Subscriber>> {
    private Predicate<Person> predicate;

    public PersonSubscriberTransformer(Predicate<Person> predicate) {
        this.predicate = predicate;
    }

    @Override
    public List<Subscriber> transform(List<Person> personList) {
        // 过滤符合条件的Person并转换为Subscriber集合
        return personList.stream()
                .filter(predicate)
                .map(this::convertToSubscriber)
                .collect(Collectors.toList());
    }

    // 自定义Person到Subscriber的转换方法,根据实际业务调整字段映射
    private Subscriber convertToSubscriber(Person person) {
        Subscriber subscriber = new Subscriber();
        subscriber.setId(person.getId());
        subscriber.setName(person.getName());
        // 补充其他字段的转换逻辑
        return subscriber;
    }
}

说明

通过明确指定Transformer接口的具体泛型类型,让transform方法的签名与接口定义完全匹配,既满足了参数和返回值的类型要求,也符合Java泛型的实现规范,不会再出现方法签名不匹配的错误。

内容的提问来源于stack exchange,提问作者Ballazx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:42:50