Erstmal mein Code, dann die Erklärungen.
Der Vollständigkeit halber ein größerer Ausschnitt der Klasse KontaktController:
boolean gefunden = true;
int durchgang = startseite;
int[] informationen = new int[2];
char[] zeichen = suchbegriff.toCharArray();
String zwischenspeicher = new String();
for(int j = 1; j <= 6; j++) {
switch (j){
case 1: zwischenspeicher = "sVorname"; break;
case 2: zwischenspeicher = "sNachname"; break;
case 3: zwischenspeicher = "sStrasse"; break;
case 4: zwischenspeicher = "sOrt"; break;
case 5: zwischenspeicher = "sPlz"; break;
case 6: zwischenspeicher = "sTelNummer"; break;
}
System.out.println(zwischenspeicher);
gefunden = true;
for (int i = 0; i < zeichen.length; i++) {
if (!kontaktArrayList.get(durchgang).zwischenspeicher.contains(String.valueOf(zeichen[i]))) {
gefunden = false;
}
}
Eigentlich geht es mir nur um die Zeile :
(!kontaktArrayList.get(durchgang).zwischenspeicher.contains(String.valueOf(zeichen[i])))
Ich möchte, mit der Variable "durchgang" auf ein bestimmtes Objekt der Klasse Kontakt zugegriffen wird, welche alle in der "kontaktArrayList" gespeichert sind. Es wird also ein bestimmtes Objekt zurückgegeben, von dem dann ein Attribut abgefragt werden soll. Welches das ist, wurde vorher in der Switch-Case Abfrage festgelegt.
Wenn ich direkt ein Attribut hinschreibe (z.B. [...] .get(durchgang).sVorname[...]), dann geht es. Ich müsste dann allerdings die innere For-Schleife sechs mal mit immer einem anderem Attribut nutzen, weshalb ich es lieber so machen würde, wie oben gezeigt. Die Fehlermeldung lautet "Cannot resolve symbol 'zwischenspeicher' ". Gibt es irgendeinen Trick oder muss man an bestimmten Stellen Klammern setzen, damit auf den Text von "zwischenspeicher" zugegriffen wird?