【问题标题】:How to create an Object to an in interface which is having generics如何为具有泛型的接口创建对象
【发布时间】:2017-06-11 16:37:37
【问题描述】:

我在实例化接口时遇到了以下困难。

public interface HostSender < T extends Serializable, R extends Serializable> {
}

public class MySender implements  HostSender< MessageRequest, MessageResponse> {  
} 

问题:

HostSender< Serializable, Serializable> messageSender= null;

谁能告诉我如何为上述语句创建对象?我通过以下方式尝试使用 new 运算符,但它不起作用。

messageSender = new MySender<MessageRequest, MessageResponse> ();
messageSender = new MySender ();

【问题讨论】:

  • &lt;T extends Serializable, T extends Serializable&gt; - 这是一个错字吗?两个泛型类型参数不应具有相同的名称。
  • 试试HostSender&lt;? extends Serializable, ? extends Serializable&gt; messageSenderHostSender&lt;?, ?&gt; messageSenderHostSender&lt; MessageRequest, MessageResponse&gt; messageSender
  • 对不起,具体的接口代码是 public interface HostSender{}

标签: java


【解决方案1】:

您的“MySender”类不是通用的。因此,你必须使用这个:

HostSender< ? extends Serializable, ? extends Serializable> messageSender= null;
messageSender = new MySender();

【讨论】:

  • 它会发出编译器警告。
猜你喜欢
  • 2013-01-08
  • 2015-05-21
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多