使用两个泛型实现接口

Bal*_*azx 0 java generics inheritance interface

我的家庭作业中有一项任务,但我无法克服它。 在此输入图像描述

Transformer接口的代码如下:

public interface Transformer<FROM, TO> {
    TO transform(FROM value);
}
Run Code Online (Sandbox Code Playgroud)

PersonSubscriberTransformer到目前为止,该类的代码如下所示:

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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

变换方法的参数应该是List<Person>并且它应该返回一个List<Subscriber>. 当我更改参数时,我收到一条错误消息,提示我应该将该方法拉至 Transformer 接口。

以正确的方式实施此方法的解决方案是什么?

hev*_*ev1 6

基于 的预期签名transformFROM应该是List<Person>并且TO应该是List<Subscriber>。类本身不应该是通用的。

public class PersonSubscriberTransformer implements Transformer<List<Person>, List<Subscriber>> {
    // constructor...
    
    @Override
    public List<Subscriber> transform(List<Person> persons) {
        // complete this method...
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)