为什么以下代码会引发异常,这是什么意思?
float[][] foo_array = new float[WIDTH][HEIGHT]; //Assume WDITH and Height are defined
java.util.Arrays.fill(foo_array, Float.POSITIVE_INFINITY);
如您所见,我只是试图将浮点数组初始化为无穷大,但这会导致以下异常:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.ArrayStoreException: java.lang.Float
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:113)
Caused by: java.lang.ArrayStoreException: java.lang.Float
at java.util.Arrays.fill(Arrays.java:2170)
当然,我可以遍历整个数组并将每个值设置为无穷大,而且我知道无论如何填充方法都是这样做的(它还能如何工作)。但我只是好奇为什么这不起作用以及这个例外是什么。
编辑:我省略了异常消息的很大一部分,因为我不想让它这么长而且它没有提供任何相关信息。