# statische ArrayList?



## Gast (9. Sep 2008)

Servus,

habe eine Frage...

wie kann ich in einer Klasse eine statische ArrayList deklarieren. Die ArrayList muss von Aussen abrufbar sein, ohne das ein Objekt davon existiert.

Das Problem allerdings ist, dass ich diese arrayList mit werten füllen muss.


```
Class Auto {

 public static ArrayList<String> autos = new ArrayList<String>();

//wo fülle ich die arraylist???


}
```

gruß


----------



## Verjigorm (9. Sep 2008)

da sie statisch ist, kannst du sie von überall befüllen mit Auto.autos.add(string) ...


----------



## maki (9. Sep 2008)

.. oder in einem static block, falls möglich:

```
Class Auto {

    public static ArrayList<String> autos = new ArrayList<String>();

    static {
        autos.add("BMW");
        autos.add("Mercedes");
        autos.add("Audi);
    }


}
```


----------



## Guest (9. Sep 2008)

Hallo,


Ich möchte halt einfach der Klasse AUTO sozusagen eine Liste von Automarken zuordnen. D.h. Auto kann nur Modelle enthalten, die in der ArrayList aufgelistet sind.

Diese Liste möchte ich dann auch in einer Applikation in einer Checkbox auflisten.

wann wird dieses hier ausgeführt??


> static {
> autos.add("BMW");
> autos.add("Mercedes");
> autos.add("Audi);
> }


----------



## Tobias (9. Sep 2008)

Sobald die Klasse das erste mal angefasst wird.


----------



## ARadauer (9. Sep 2008)

> wann wird dieses hier ausgeführt??


wenn ich mich nicht irre, wenn der class laoder der klasse lädt,


----------



## maki (9. Sep 2008)

http://java.sun.com/docs/books/jls/third_edition/html/classes.html#39245


----------



## HoaX (10. Sep 2008)

ist diese vorgabeliste erweiterbar? wenn nicht würde ich ein enum verwenden. dann kannst du auch sicher sein dass nur eine gültige marke gewählt wird.

btw listet man einträge in einer combobox, nicht in einer checkbox(höchstens mit mehreren)


----------



## Murray (10. Sep 2008)

Vermutlich wird wirklich ein enum sinvoller sein. Falls das bei Dir aus irgendwelchen Gründen nicht so sein sollte, dann könntest Du die Liste mit etwas weniger Code (und geringfügig effizienter, aber das spielt hier keine Rolle) auch so erzeugen:

```
Class Auto {
    public static List<String> autos = Arrays.asList( "BMW", "Mercedes", "Audi");
}
```

Und wenn die Liste wirklich niemals verändert werden soll:

```
Class Auto {
    public static final List<String> autos = Collections.unmodifiableList( Arrays.asList( "BMW", "Mercedes", "Audi"));
}
```


----------

