Java ist statisch getypt. Schau einfach nach, wo Du die Variable deklariert hast, da steht der Typ immer dabei.bjcoon hat gesagt.:Mit welcher Methode prüfe ich, welchen Typs eine Variable ist?
int x; // der Typ von x ist int
List<String> liste = new ArrayList<String>();
if (liste instanceof ArrayList) { //true
System.out.println("ArrayList");
}
if(liste instanceof List) { //true
System.out.println("List");
}
if(liste instanceof Vector) { //false
System.out.println("Vector");
}
AlArenal hat gesagt.:ArrayList verhält sich zu List etwa wie VW Golf V zu Automobil.
Von einem Automobil ist bekannt, dass es 4 Räder hat, einen Motor, wenigstens nen Platz für nen Fahrer, etc. Aber niemand kann ein Automobil kaufen, weil es nur eine Generalisierung ist. Eine konkrete Implementierung wäre ein spezifisches Modells eines Herstellers. Das hat diegleichen Eigenschaften / Möglichkeiten wie jedes Automobil, ist aber real existent.
Übertragen auf obige Analogie sagst du also, dass das Automobil meinAuto ein VW Golf V ist.
import java.util.*;
import java.io.*;
public class Telefonliste {
public static BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
public static void main (String[] args) {
String eintrag;
List liste = new ArrayList();
System.out.println("Bitte geben Sie einen Namen und die Telefonnummer ein. Bsp.: 'Frank 0123456'");
eintrag = leseEintrag();
zeigeEintrag(eintrag);
speichereEintrag(eintrag);
}
public static String leseEintrag() {
while (true) {
try {
return br.readLine();
}
catch (Exception e) {
System.err.println("Eingabefehler");
}
}
}
public static String zeigeEintrag(String eintrag) {
System.out.println(eintrag);
return eintrag;
}
public static String speichereEintrag (String eintrag, List liste) {
liste.add(eintrag);
return eintrag;
}
public void löscheEintrag (String eintrag, List liste) {
liste.remove(eintrag);
}
}
Eine Variable hat in Java genau einen Typ. Deine Variable liste hat den Typ List. List ist kein primitiver Typ (wie int, long, char etc.), sondern ein Referenztyp. Der Wert der Variable ist also entweder null oder eine Referenz auf ein Objekt.bjcoon hat gesagt.:Mich hat es ein bisschen durcheinander gebracht, weil ich mit:
Code:List liste = new ArrayList();
zu Beginn mit 'List' begonnen habe und nicht mit 'ArrayList'.
Wie ist das zu verstehen?
List<String> liste = new ArrayList<String>();
System.out.println(liste.getClass().getName());
??? nope!das alle Collections implementieren
Richtig. Schoen naheliegend.ARadauer hat gesagt.:ich vermute, dass jede Collection von Collection ableitet