Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf
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.
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.
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());
}
}
}
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.
}