【发布时间】:2010-10-20 21:20:56
【问题描述】:
我想声明一个变量,该变量包含一个实现特定接口的类。具体来说,我试图将SocketChannel 和DatagramChannel 存储在同一个属性中,以便可以互换使用它们。这两个类都扩展了SelectableChannel 并实现了ByteChannel,我希望从这两个类中调用方法。我不想将它存储在两个单独的变量中,因为它们需要是同一个对象。我想将这个对象在一个变量中传递给构造函数。
甚至有可能做到这一点吗?如果没有,仍然支持这种类型的模型的常见解决方法是什么?为清楚起见,以下是(不正确的)声明,它们可以描述我正在尝试做的事情,它们是否有效:
私有 SelectableChannel 和 ByteChannel byteChannel; 私有 SelectableChannel 实现 ByteChannel byteChannel; 私人的 ?扩展 SelectableChannel 实现 ByteChannel byteChannel;请注意:
我不是在寻找其他方法来处理避免这个问题的网络,或者其他方法来实现网络。这个问题是关于声明一个变量来保存一个类的子类,该类也实现了一个特定的接口。我只提供了细节,以便您知道我无法创建新的接口或子类,因为在这种情况下,所涉及的所有类都是 java.nio 包的一部分。
【问题讨论】:
标签: java variables interface subclass nio