小编Usa*_*kar的帖子

如何在java泛型中的类型参数内定义类型参数

我有一条消息 dto

class MyMessage<T>{
  T payload;
  String groupId;
}    
Run Code Online (Sandbox Code Playgroud)

我有一个具有简单实现的接口

interface Sender<T>{
    void sendMessage(T message);
}

class SenderService implements Sender<MyMessage>{
    @Override
    public void sendMessage(MyMessage message){...}
}
Run Code Online (Sandbox Code Playgroud)

现在,MyMessage 有一个原始类型,我希望 MyMessage 有一个类型参数,它将动态定义我的有效负载。如何实现?我已经尝试过以下方法。

class SenderService implements Sender<MyMessage>{
    @Override
    public <E> void sendMessage(MyMessage<E> message){...}
}
Run Code Online (Sandbox Code Playgroud)

但它会给出编译错误,因为该方法没有正确覆盖。我需要对抽象接口方法进行哪些更改才能使其正常工作?

java generics type-parameter

1
推荐指数
1
解决办法
133
查看次数

标签 统计

generics ×1

java ×1

type-parameter ×1