Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf

Peter_h72

Neues Mitglied
Hey,

ich habe eine Arrayliste "liste" mit Referenzen auf eine Klasse (z.B new TestKlasse). Wenn ich System.out.println(liste.get(0)) ausführe gibt die Console testPackage.TestKlasse@568db2f2 aus. Wie kann ich jetzt auf Methoden von der TestKlasse zugreifen? Bzw. nach was muss ich Googlen um eine Erklärung zu finden.

Vielen Dank für eure Hilfe!
 
Hier ist ein Beispiel:

Java:
public class Main {

    public static void main(String[] args) {
        List<String> list = Arrays.asList("Test");
        String listEntry = list.get(0);
        System.out.format("Zugriff auf die Methode: String#length() einer String-Instanz - Rückgabe: %s", listEntry.length());
    }

}
Testklasse wurde praktischerweise durch String ersetzt.
 
Hier ist ein Beispiel:

Java:
public class Main {

    public static void main(String[] args) {
        List<String> list = Arrays.asList("Test");
        String listEntry = list.get(0);
        System.out.format("Zugriff auf die Methode: String#length() einer String-Instanz - Rückgabe: %s", listEntry.length());
    }

}
Testklasse wurde praktischerweise durch String ersetzt.
Danke für deine Antwort. Wie sieht das aus wenn ich mehrere Referenzen auf Objekte von mehreren Klassen habe, also z.B:
List<TestInterface> list = Arrays.asList(new TestKlasse, new TestKlasse2); ?

Java:
        for (int i = 0; i < 2; i++) {
            List<TestInterface> list = Arrays.asList(new TestKlasse, new TestKlasse2);
            TestInterface listEntry = list.get(i);
        }

Und wie kann ich dann eine Methode von der Testklasse ausführen?
 
Du erstellst in der Schleife 2 verschieden Listen!
Der Zugriff geht so:
Java:
public class Main {

    public static void main(String[] args) {
        List<CharSequence> list = Arrays.asList("Test1", "Test2");
        for (CharSequence listEntry : list) {
            System.out.format("Zugriff auf die Methode: CharSequence#length() einer CharSequence-Instanz - Rückgabe: %s\n", listEntry.length());
        }
    }

}
 
Zuletzt bearbeitet:
Danke für deine Antwort. Wie sieht das aus wenn ich mehrere Referenzen auf Objekte von mehreren Klassen habe, also z.B:
List<TestInterface> list = Arrays.asList(new TestKlasse, new TestKlasse2); ?
Alle in der Liste enthaltenen Instanzen implementieren das Interface "TestInterface". Damit lassen sich alle Methoden, die das Interface vorschreibt, auch auf die enthaltenen Instanzen aufrufen.
Java:
interface Foo {
    void doSomething();
}


List<Foo> liste = new ArrayList<>();

// todo: Instanzen hinzufügen

for (Foo foo : liste) { // für jede Instanz in der Liste
    foo.doSomething(); // rufe die Methode des Interfaces auf
}

In deinem Fall:
Java:
for (int i = 0; i < 2; i++) {
    List<TestInterface> list = Arrays.asList(new TestKlasse, new TestKlasse2);
    TestInterface listEntry = list.get(i);
    listEntry.nameDerMethode(); // Methode aufrufen.
}
 
Zuletzt bearbeitet:

Zurück
Oben