In an Android app, I added this code to onCreate()
Closeable sss = new Socket();
if (!(sss instanceof Closeable)) {
throw new RuntimeException("Something unexpected happened");
}
The imports are:
import java.io.Closeable;
import java.net.Socket;
The code compiles, but
I am getting the exception:
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
...
In a different context, the glitch causes a java.lang.ArrayStoreException
(namely, java.lang.ArrayStoreException: java.net.Socket cannot be stored in an array of type java.io.Closeable[]).
Am I missing something?
Any idea what to do?
EDIT
Similarly, when DatagramSocket
is used as MyClass<DatagramSocket>
for MyClass<T extends Closeable>
, it causes java.lang.IncompatibleClassChangeError: interface not implemented.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…