Hallo!
Wir sollen ein Programm mit Java programmieren, das Tiere aus einer vorher generierten Textdatei einliest, in unterschiedliche Listen sortiert und dann wieder ausgibt. Außerdem soll noch eine Methode geschrieben werden, die Tiere aus einer Liste "streichelt". Soweit zum Grundaufbau. Einer Liste von Tieren ("Haustiere") sollen noch ein Name je Tier hinzugefügt werden, da liegt auch mein Problem. Einlesen, Sortieren und Ausgabe der Listen klappt auch soweit.
Durch eine Switch-Anweisung soll jedes Tier einer bzw. zwei Listen zugeordnet werden. Eigentlich müsste es doch mit folgendem Quellcode gehen:
Es soll, immer wenn "Maine-Coon" gefunden wurde, dies mit der Methode getName zwei Listen zugeordnet werden.
Es kommt aber folgende Fehlermeldung:
[WR]"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getName(ArrayList<String>) in the type ZooTiereMain is not applicable for the arguments (Scanner)"[/WR]
Hier meine getName Methode (Sie soll aus einer Textdatei mit Namen den Tieren der Liste <Haustiere> zufällig einen zuteilen):
Die MaineCoon.java Datei:
Hier der ganze Quellcode meiner ZooTiereMain Datei.
//edit1: Anscheinend kann ich die JAVA Files nicht spoilern. :/
//edit2: Exception hinzugefügt.
Wir sollen ein Programm mit Java programmieren, das Tiere aus einer vorher generierten Textdatei einliest, in unterschiedliche Listen sortiert und dann wieder ausgibt. Außerdem soll noch eine Methode geschrieben werden, die Tiere aus einer Liste "streichelt". Soweit zum Grundaufbau. Einer Liste von Tieren ("Haustiere") sollen noch ein Name je Tier hinzugefügt werden, da liegt auch mein Problem. Einlesen, Sortieren und Ausgabe der Listen klappt auch soweit.
Durch eine Switch-Anweisung soll jedes Tier einer bzw. zwei Listen zugeordnet werden. Eigentlich müsste es doch mit folgendem Quellcode gehen:
Java:
case "Maine-Coon":
fe = new MaineCoon(getName(reader1));
felist.add(fe);
tilist.add((MaineCoon) fe);
break;
Es kommt aber folgende Fehlermeldung:
[WR]"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getName(ArrayList<String>) in the type ZooTiereMain is not applicable for the arguments (Scanner)"[/WR]
Hier meine getName Methode (Sie soll aus einer Textdatei mit Namen den Tieren der Liste <Haustiere> zufällig einen zuteilen):
Java:
public static String getName(ArrayList<String> Namen) {
int ran = (int) (Math.random() * Namen.size());
return Namen.get(ran);
}
Die MaineCoon.java Datei:
Java:
package zoo;
public class MaineCoon extends Feloidea implements Haustiere {
String name;
public String toString() {
return "Art: Maine-Coon, " + "Familienzugehörigkeit: Feloidea, "
+ "Identifikationsnummer: " + nummer + ", Futter: " + futter
+ ", Name: " + getName;
}
public MaineCoon(String na) {
super();
name = na;
futter = "Katzenfutter";
}
public String streicheln() {
String str = "Miauz";
return str;
}
}
Java:
package zoo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class ZooTiereMain {
public static void main(String[] args) throws FileNotFoundException {
System.out.println("Willkommen im Zoo!");
File dirnamen = new File(".\\Daten\\Namen.txt");
InputStream namenstream = new FileInputStream(dirnamen);
Scanner reader1 = new Scanner(namenstream);
ArrayList<String> nalist = new ArrayList<String>();
while (reader1.hasNext()) {
nalist.add(reader1.nextLine());
}
File dirtiere = new File(".\\Daten\\Tiere.txt");
InputStream istream = null;
istream = new FileInputStream(dirtiere);
String line;
ArrayList<Feloidea> felist = new ArrayList<Feloidea>();
ArrayList<Canoidea> calist = new ArrayList<Canoidea>();
ArrayList<Haustiere> tilist = new ArrayList<Haustiere>();
if (dirtiere != null) {
istream = new FileInputStream(dirtiere);
Scanner reader = new Scanner(istream,"ISO8859_1");
Feloidea fe;
Canoidea ca;
Haustiere ha;
while (reader.hasNext()) {
line = reader.nextLine();
switch (line) {
case "Erdmännchen":
fe = new Erdmaennchen();
felist.add(fe);
break;
case "Amurtiger":
fe = new Amurtiger();
felist.add(fe);
break;
case "Maine-Coon":
fe = new MaineCoon(getName(reader1));
felist.add(fe);
tilist.add((MaineCoon) fe);
break;
case "Türkisch Van":
fe = new TuerkischVan();
felist.add(fe);
tilist.add((TuerkischVan) fe);
break;
case "Wolf":
ca = new Wolf();
calist.add(ca);
break;
case "Kodiakbär":
ca = new Kodiakbaer();
calist.add(ca);
break;
case "Beagle":
ca = new Beagle();
calist.add(ca);
tilist.add((Haustiere) ca);
break;
case "Bernhardiner":
ca = new Beagle();
calist.add(ca);
tilist.add((Haustiere) ca);
break;
}
}
System.out.println(felist);
System.out.println(calist);
System.out.println(tilist);
System.out.println(nalist);
}
}
public static String getName(ArrayList<String> Namen) {
int ran = (int) (Math.random() * Namen.size());
return Namen.get(ran);
}
}
//edit1: Anscheinend kann ich die JAVA Files nicht spoilern. :/
//edit2: Exception hinzugefügt.
Zuletzt bearbeitet: