次のコードで例外が発生するのはなぜですか? また、それはどういう意味ですか?
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)
もちろん、配列全体を反復処理して、各値を無限大に設定することもできます。それがとにかく fill メソッドが行うことであることはわかっています (それ以外の方法で機能する可能性があります)。しかし、なぜこれが機能しないのか、この例外は何なのかが気になります。
編集:これをそれほど長くしたくなく、関連する情報を提供していなかったため、例外メッセージの大部分を省略しました。