当前位置: 首页 > 面试题库 >

Android:使用带有Socket的Closeable接口的异常

熊烨
2023-03-14
问题内容

当我尝试通过其Closeable接口关闭套接字时,出现异常:

new java.net.Socket().close();
// no error

((java.io.Closeable) new java.net.Socket()).close();
// Throws: java.lang.IncompatibleClassChangeError: interface not implemented

这是为什么?该问题仅在Android设备上,而不在桌面上运行的Java程序上。


问题答案:

引用Android问题跟踪器:

套接字仅从API级别19(kitkat)起才实现Closeable,但是该信息不在生成的文档中。



 类似资料:
  • 我有一个基于Java EE6CDI的应用程序,运行在JBoss 7.1.1版本上,它也包含一些会话bean。 }

  • 我使用的是python 2.7、Selenium和PhantomJS。

  • 问题内容: 我有一个来自客户端的对象,并自动从Web Api 2反序列化。 现在,我对模型的一个属性有疑问。此属性“ CurrentField”的类型为IField,此接口有2种不同的实现。 这是我的模型(只是一个假人) 我试图创建一个自定义的JsonConverter来查找来自客户端的对象是什么类型(Field1或Field2),但是我只是不知道如何。 我的Converter被调用,当我调用va

  • 据我所知,Closeable接口大约是从Java1.5开始的,而AutoCloseable是在Java1.7中引入的。 我想理解的是为什么Closeable扩展了AutoCloseable而不是相反?这样做是不是因为向后依赖(不能更改可关闭接口),即AutoCloseable需要比Closeable有更广泛的例外?还是我的逻辑错了,事情应该是这样的?