java - 类型 T 的方法未定义

标签 java generics

所以我正在尝试做这样的事情:

Class myClass <T>
{
    T connection;

    public myClass(T conn)
    {
       this.connection = conn;
    }

    public void close()
    {
       connection.close()
    }
}

知道 T 只能是 Socket 或 BluetoothSocket(都是 has.close() 方法)。

是否可以使用泛型类来做这样的事情? (现在我有错误方法 .close() 对于类型 T 未定义)

最佳答案

SocketBluetoothSocket两者都实现 Closeable ,您可以:

class myClass<T extends Closeable> implements Closeable
{
    T connection;

    public myClass(T conn)
    {
        this.connection = conn;
    }

    @Override
    public void close() throws IOException
    {
        this.connection.close();
    }
}

关于java - 类型 T 的方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684757/

相关文章:

java - 如何在 EJB 模块中使用 log4j?

java - Eclipse - 显示完整的调用堆栈(比如当它在调试器中遇到断点时)而不放置断点?

javascript - 我可以说 Nodejs 就像 JVM 但是是针对 JavaScript 的吗?

swift - 仅类协议(protocol)作为具有 AnyObject 约束的关联类型的类型别名

java - JD-Eclipse 在我的 Eclipse 3.7 上安装失败

java - Spring boot 为静态字段 Autowiring BeanCreationException

swift - 接受泛型参数的函数

java - Java抽象方法中使用通配符和声明泛型的区别

java - 泛型类的 XStream 反序列化返回 java.lang.Object

ios - Swift 泛型和向上转型