In Java auf eine Variable in einer anderen Methode zugreifen?
Hallo,
ich habe 2 Methoden in der gleichen Klasse erstellt, die eine als “public static void main” und die andere als “public static String …”. In der 2. Methode habe ich eine String Arraylist erstellt, aus der ich dann per Zufall ein Element ziehe und returne. Nun würde ich gern in der Main Methode auf das “size“ Attribut (Arraylist.size();) zugreifen.
Gibt es da irgendeine Möglichkeit, denn den Wert als int zu returnen fällt ja leider aus, da diese Methode ja bereits den String returnd.
Vielen Dank und Liebe Grüße
2 Antworten
Also vorweg. Statisch in Java zu arbeiten ist nur bedingt sinnvoll. Ist dir das bewusst? Man kapselt das meist in Objekten und instanziiert sie.
Deine Frage versteh ich nicht ganz. Du willst auf eine Liste aus der 2. Methode von der Main zugreifen?
Du könntest dafür Felder benutzen. Stichwort Objektorientierung. Dann teilen sich beide Methoden diese variablen. Direkt darauf zugreifen ist nicht möglich.
Du erstellt eine Klasse. Namen müsstest du dir ausdenken jenachdem was es machen soll.
Erste Methode kann dann auf das Feld zugreifen und Methode 2 auch.
Verstehst es ein wenig?
Zwei Lösungsvorschläge:
a) Du legst die Liste in der main-Methode an und übergibst sie an die zweite Methode.
class Example {
public static void main(String[] args) {
List<String> words = new ArrayList<>();
String randomWord = getRandomWord(words);
int size = words.size();
}
private String getRandomWord(List<String> words) {
/* ... */
}
}
Sofern die künftige Länge der Liste schon vor Aufruf klar ist, könntest du statt einer Liste auch die Länge in main definieren und übergeben.
b) Du legst die ArrayList als Feld an.
class WordManager {
private List<String> words = new ArrayList<>();
public static void main(String[] args) {
WordManager manager = new WordManager();
String randomWord = manager.getRandomWord();
int size = manager.words.size();
}
public String getRandomWord() {
/* get random word from words ... */
}
}