Originally posted by Alfonso Harding:

From the following code:

Can someone please explain why the following assignment is legal:

and why is the following not legal.

thanks.

b2 is a 4-dimensional array and b is a 2-dimensional array so when you have N subscripts following an N-dimensional array that will evaluate to a simple element. In the first statement you had b2 [0][1][0][0] which indeed evaluates to a simple byte and b [0][0] which also evaluates to byte. Now if you have fewer subscripts than dimensions, then it will evaluate to an array of N-S dimensions where S is the number of subscripts that follows the reference. In the second example you had b2 [1][1][0] or a 4-3=1 dimensional array. Java being a strong typed language vetos your trying to set an array to a primitive.