For a certain API [1], arrays of data have to be passed as elements of a Java Object array (one such element per array). The following works fine, and the 2D double array AInData is accepted by the API as the 1st argument (and there is only 1 argument):
double[][] AInData = {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}};
Object[] arObj = { AInData };
Since floating point literals default to double, I thought I could do without the intermediate variable AInData:
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
This caused the following errors:
illegal initializer for Object
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
illegal initializer for <none>
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
illegal initializer for <none>
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
Why can I not do away with AInData?
If literals truly default to double, then there is no casting when AInData is initialized.
NOTES: