I have a class which contains a 2-d boolean array as private member. The class also contains a static array of 7 instances of the class, the only instances that will ever exist. And I have a static block to create that array:

Code:
class TetrisBlock
{
	private boolean[][] blockLook;

	private TetrisBlock()
	{
	}

	private static TetrisBlock[] blocks;

	static {
		blocks = new TetrisBlock[7];
		blocks[0] = new TetrisBlock();
		blocks[0].blockLook = { { true,  true,  true,  true},	// ####
								{false, false, false, false} };	// ----
		blocks[1] = new TetrisBlock();
		blocks[1].blockLook = { { true,  true,  true, false},	// ###-
								{ true, false, false, false} };	// #---
		blocks[2] = new TetrisBlock();
		blocks[2].blockLook = { { true, false, false, false},	// #---
								{ true,  true,  true, false} };	// ###-
		blocks[3] = new TetrisBlock();
		blocks[3].blockLook = { {false,  true,  true, false},	// -##-
								{ true,  true, false, false} };	// ##--
		blocks[4] = new TetrisBlock();
		blocks[4].blockLook = { { true,  true, false, false},	// ##--
								{false,  true,  true, false} };	// -##-
		blocks[5] = new TetrisBlock();
		blocks[5].blockLook = { {false,  true, false, false},	// -#--
								{ true,  true,  true, false} };	// ###-
		blocks[6] = new TetrisBlock();
		blocks[6].blockLook = { { true,  true, false, false},	// ##--
								{ true,  true, false, false} };	// ##--
	}
The compiler says this code is not correct. It gives me the following error:
TetrisBlock.java:17: illegal start of expression
blocks[0].blockLook = { { true, true, true, true}, // ####

It gives me the same error for all similar lines.

What am I doing wrong? Isn't this the way to directly initialize arrays?

Thanks in advance.