java - 使用扩展接口(interface)参数实现方法

标签 java

我有这段 Java 代码:

public interface User{
     public void in(Message message);
}

public interface Message{
//....
}

public interface WebsiteMessage extends Message{
//....
}

public class WesiteUser implements User{
     @Override
     //I'm not allowed to do this
     public void in(WebsiteMessage message){}
}

有没有办法用 WebsiteMessage 参数实现 in 方法? 目前我正在做这样的事情:

@Override
public void in(Message message){
     WebsiteMessage msg= (WebsiteMessage) message;
     //..
}

最佳答案

您可以使用 bounded type parameter 来做到这一点:

public interface User<M extends Message> {
     public void in(M message);
}

public class WebsiteUser implements User<WebsiteMessage> {
     @Override
     public void in(WebsiteMessage message) {}
}

关于java - 使用扩展接口(interface)参数实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38991103/

相关文章:

java - 文件上传spring cloud feign客户端

java - 如何使 java 应用程序的外部 jar 可用于其插件

java - 如何循环直到得到正确答案?

java - 删除此 token (其他)

java - 发送 HTTP POST 请求

java - 杀毒软件会降低基于 tomcat 的应用程序的速度

java - Tomcat 错误 java.lang.ClassCastException :

java - Camel Rest DSL 响应代码

java - java中的词干库

Java,双返回函数,失败时返回什么?