Question: This is how I'm trying to do it: 

```
interface a{} 
class b implements a{
    a[] array; 
    new b(){
        array={ new aImplementer(), new aImplementer(), new aImplementer()}; 
    } 
} 

```

Why can't I do this? Am I just doing it wrong? Right now the error I'm getting is an illegal start of expression error at the { part of array={

Answer: 
Your syntax is off. I believe you want something like this (Final revision--actually tested this time--then redone after my changes were overridden.)

```
interface A{} 

class AImplementer implements A{};

class B { 
    A[] array; 
    B(){  
        array=new A[]{ new AImplementer(), new AImplementer(), new AImplementer()}; 
    } 
 }

```

There, guaranteed to compile or twice your money back :)

Also threw in "classes should start with an upper case letter" for no charge.
You can only assign an array to an array literal (I'm not sure what you call these beasts) at declaration of the variable. So this may be OK

```
// array literal assigned at variable declaration
a[] array = { new aImplementer(), new aImplementer(), new aImplementer()};  
new b(){

} 

```

But what you have where you declare it first and then assign it at a different spot isn't OK. Why? I'm not sure other than that's how it is in the JLS.

Edit: Updated compiled/tested code:

```
interface A {
}

class AImplementer implements A {
};

class B {
   A[] array = {new AImplementer(), new AImplementer(), new AImplementer()};

   B() {

   }
}

```