# Array mit Variablen aus Vararg füllen



## WuWa (14. Jun 2006)

Hallo,


ich muss als Studienaufgabe eine Methode entwerfen, die ein Array (mit variabler Länge) mit Objekten via einem Vararg füllt. 
Leider klappt das nicht bei mir!

Der *grobe Entwurf *meiner Methode sieht so aus:



```
static void zuteilungArray(int laenge, Angestellte7a... x)        //Arraylänge soll variabel sein,              
{ 
        
  Angestellte7a ang = new Angestellte7a[laenge];                     //Erzeugung des Arrays vom Typ Angestellte7a

   for (int i =0; i < ang.length; i++)
   {
       ang[i] = x;
   }
}
```
.............................

Der Aufruf der Methode in main sollte dann etwa so ausehen:


```
zuteilungArray(1, Objekt1, Objekt2);
```

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Beim Compilieren bekomme ich folgende Fehlermeldung:

\Übung7a\src\Übung7a.java:16: incompatible types
found   : Angestellte7a[]                                                            
required: Angestellte7a
       ang_ = x;
1 error
BUILD FAILED (total time: 1 second)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Kann mir bitte jemand sagen, wo mein Fehler liegt, bzw. ob es überhaupt möglich ist, unter Java ein Array mit Objekten aus einem Vararg zu füllen !!

Tausend dank_


----------



## The_S (14. Jun 2006)

Schreib


```
static void zuteilungArray(int laenge, Angestellte7a... x)        //Arraylänge soll variabel sein,              
{ 
        
  Angestellte7a[] ang = new Angestellte7a[laenge];                     //Erzeugung des Arrays vom Typ Angestellte7a

   for (int i =0; i < ang.length; i++)
   {
       ang[i] = x;
   }
}
```


----------



## Murray (14. Jun 2006)

Ich verstehe das Problem nicht ganz: ein varargs-Parameter ist doch nichts anderes als ein Array; insofern ist die redundante Angabe der Länge ohnehin überflüssig:

```
static void zuteilungArray(Angestellte7a... x)        //Arraylänge soll variabel sein,             
{
       
  Angestellte7a[] ang = new Angestellte7a[ x.length];                     //Erzeugung des Arrays vom Typ Angestellte7a

   for (int i =0; i < ang.length; i++)
   {
       ang[i] = x;
   }
}
```

Das Kopieren kann man dann vielleicht noch etwas effizienter machen:

```
static void zuteilungArray(Angestellte7a... x)        //Arraylänge soll variabel sein,             
{
       
  Angestellte7a[] ang = new Angestellte7a[ x.length];                     //Erzeugung des Arrays vom Typ Angestellte7a
  System.arraycopy( x, 0, ang, 0, x.length);
}
```

Je nach Aufgabenstellung kann man sich das Kopieren auch ganz schenken:

```
static void zuteilungArray(Angestellte7a... x)        //Arraylänge soll variabel sein,             
{
       
  Angestellte7a[] ang = x;

}
```


----------



## thE_29 (14. Jun 2006)

Er hatte einfach nen Fehler...

Angestellte7a ang = new Angestellte7a[laenge];

er weißt nehm Objekt ein new Objekt Array zu!

Das war das Problem und Hobbit hat es schon richtig gestellt

Angestellte7a ang[] = new Angestellte7a[laenge];


----------



## The_S (14. Jun 2006)

thE_29 hat gesagt.:
			
		

> Er hatte einfach nen Fehler...
> 
> Angestellte7a ang = new Angestellte7a[laenge];
> 
> ...



Sag ich doch!?  ???:L


----------

