gpt4 book ai didi

java - 为什么 Socket 在运行时不是 instanceof Closeable?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:31 25 4
gpt4 key购买 nike

在 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<DatagramSocket>对于 MyClass<T extends Closeable> ,它会导致 java.lang.IncompatibleClassChangeError: interface not implemented

最佳答案

此问题出现在 19 之前的 Android API 级别上。在受影响的版本上,Socket 未实现 Closeable。

来源:

关于java - 为什么 Socket 在运行时不是 instanceof Closeable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com