在Android应用程序中,我将这段代码添加到onCreate()
Closeable sss = new Socket();
if (!(sss instanceof Closeable)) {
throw new RuntimeException("Something unexpected happened");
}进口产品如下:
import java.io.Closeable;
import java.net.Socket;代码会编译,但我得到了例外情况:
E/AndroidRuntime( 8293): java.lang.RuntimeException: Unable to start activity...: java.lang.RuntimeException: Something unexpected happened
...
E/AndroidRuntime( 8293): Caused by: java.lang.RuntimeException: Something unexpected happened
...在不同的上下文中,故障会导致java.lang.ArrayStoreException (即java.lang.ArrayStoreException: java.net.Socket不能存储在类型为java.io.Closeable[]的数组中)。
我是不是遗漏了什么?知道该怎么做吗?
编辑类似地,当DatagramSocket用作MyClass<T extends Closeable>的MyClass<DatagramSocket>时,它会导致java.lang.IncompatibleClassChangeError:接口未实现。
发布于 2015-04-23 13:58:22
此问题发生在19岁之前的Android级别上。在受影响的版本上,套接字不能实现关闭。
资料来源:
发布于 2015-04-23 13:47:05
套接字本身是不可关闭的,但它的两个流都是。而关闭任何一个流都会关闭套接字。
https://stackoverflow.com/questions/29825330
复制相似问题