java.lang.ClassCastException

Status
Nicht offen für weitere Antworten.

L-ectron-X

Gesperrter Benutzer
Ein Posting mit der kompletten Fehlermeldung, sowie der Methode/Zeile, in der die Exception auftritt, hätte völlig ausgereicht.
 
B

bygones

Gast
ist nicht nur ausreichend sondern nötig...

ich persön. habe keine lust es runterzuladen, entpacken, anzuschaun und fehlersuchen...

poste de relevanten code mehr nicht, dann hilft dir bestimmt einer
 

lin

Top Contributor
Hm, ich kann das zip net mal entpacken?, nja, wills eigentlich auch nicht, weil ist wirklich übermühsam das Ganze zu entpacken und dann in Eclipse zu importieren, etc... also poste code, plz. :)
 
M

maenae

Gast
Ich habe das Prog. aus Eclipse exportiert. Der Import dauert ca. 10s. Richtige Fehlermeldungen hat das Prog. keine. Die untenstehende Meldung habe ich aus der Konsole.

// ***************** Meldung ************************************************
Test ok: Test1
Test ok: Test2
java.lang.ClassCastException
at aufgabe.nr026.adressbuch.AdressbuchTest.test3(AdressbuchTest.java:85)
at aufgabe.nr026.adressbuch.AdressbuchTest.<init>(AdressbuchTest.java:12)
at aufgabe.nr026.adressbuch.AdressbuchTest.main(AdressbuchTest.java:114)
Exception in thread "main"


// ***************** Code ************************************************

Code:
package aufgabe.nr026.adressbuch;

import java.util.Iterator;
import java.util.List;

public class AdressbuchTest {

	public AdressbuchTest() {
		
	test1();
	test2();
	test3();
		
	}

	
	public void test1(){
		Adressbuch adressbuch = new Adressbuch("f:\\",".adresse");
		
		try {
			Adresse adresse = adressbuch.getNeueAdresse();
			adresse.setName("Test");
			
			List adressen = adressbuch.getAdressen();
			boolean adresseGefunden = false;
			Iterator iter = adressen.iterator();
			while (!adresseGefunden && iter.hasNext()) {
				Adresse adr = (Adresse) iter.next();
				String name = adr.getName();
				if (name != null){
					//test auf namens-gleichheit
					adresseGefunden = name.equals(adresse.getName());
				}
			}
			assertTrue("Test1", adresseGefunden);
		} catch (AdresseException e) {
			fail("Text 1: Exception: " + e.getMessage());
		}
		
	}

	
		public void test2(){
		Adressbuch adressbuch = new Adressbuch("f:\\",".adresse");
		
		try {
			Adresse adresse = adressbuch.getNeueAdresse();
			adresse.setName("Test");
			String id = adresse.getId();
			
			//adressNuch neu instanzieren
			adressbuch = new Adressbuch("f:\\",".adresse");
			List adressen = adressbuch.getAdressen();
			boolean adresseGefunden = false;
			Iterator iter = adressen.iterator();
			while (!adresseGefunden && iter.hasNext()) {
				Adresse adr = (Adresse) iter.next();
				String name = adr.getName();
				if (name != null){
					//test auf namens- und id-gleichheit
					adresseGefunden = name.equals(adresse.getName()) && adresse.getId().equals(id);
					
				}
			}
			assertTrue("Test2", adresseGefunden);
		} catch (AdresseException e) {
			fail("Text 2: Exception: " + e.getMessage());
		}
		
	}
			
		public void test3(){
			CdSammlung cdSammlung = new CdSammlung("f:\\",".cdsammlung");
			
			try {
				Cd cd2 = cdSammlung.getNeueCdsammlung();
				cd2.setTitel("CDTitel");
				
				List cds = cdSammlung.getCdSammlung();
				boolean adresseGefunden = false;
				Iterator iter = cds.iterator();
				while (!adresseGefunden && iter.hasNext()) {
					Cd cd1 = (Cd) iter.next();
					String titel = cd1.getTitel();
					if (titel != null){
						//test auf namens-gleichheit
						adresseGefunden = titel.equals(cd2.getTitel());
					}
				}
				assertTrue("TestCD", adresseGefunden);
			} catch (AdresseException e) {
				fail("Text 1: Exception: " + e.getMessage());
			}
			
		}

	public void assertTrue(String message, boolean assertArg){
		if (!assertArg){
			System.out.print("FEHLER!: ");
		}else{
			System.out.print("Test ok: ");
		}
		System.out.println(message);
	}

	public void fail(String message){
		System.out.println("FEHLER!: " + message);
	}
	
	public static void main(String[] args) {
		new AdressbuchTest();
	}
}
//	****************************************************************************

package aufgabe.nr026.adressbuch;

import java.io.File;


import java.util.List;

public class Adressbuch extends RecordContainer {


	
	public Adressbuch(String pAdressVerzeichnis, String endung){
			super (pAdressVerzeichnis, endung);	
	}
	
	
	public Adresse getNeueAdresse() throws AdresseException{
			return (Adresse) getNewRecord(); 
	}
	
	
	public Records getInstance(File file)throws AdresseException {
		return (Records)new Adresse(file);
	}
	
	public List getAdressen(){
		return records;
	}
	
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
import java.io.FilenameFilter;

public class AdressbuchFilenameFilter implements FilenameFilter {
//konstruktor erstellen damit fileendung mitgegeben werden kann.
	
	public String dEndung;
	
	public  AdressbuchFilenameFilter(String dateiEndung){
		dEndung = dateiEndung;
	}
	
	public boolean accept(File dir, String name) {
		return  name.endsWith(dEndung); //name.endsWith(Adressbuch.dateiEndung);
	}

}

//	****************************************************************************

package aufgabe.nr026.adressbuch;

import java.io.File;

public class Adresse extends Records {

	
	private static final transient String NAME = "name";
	private static final transient String VORNAME = "vorname";
	private static final transient String STRASSE = "strasse";
	private static final transient String PLZ = "plz";
	private static final transient String ORT = "ort";
	private static final transient String TELEFON = "telefon";
	
	protected Adresse(File pFile) throws AdresseException  {
		super (pFile); 		
	}
	
	public String getName(){
		 return properties.getProperty(NAME);
	}
	
	public void setName(String wert) throws AdresseException{
		properties.setProperty(NAME, wert);
		 
		speichern();
	}

	public String getVorname(){
		 return properties.getProperty(VORNAME);
		  
	}
	
	public void setVorname(String wert) throws AdresseException{
		properties.setProperty(VORNAME, wert);
		speichern();
	}

	public String getStrasse(){
		 return properties.getProperty(STRASSE);
	}
	
	public void setStrasse(String wert) throws AdresseException{
		properties.setProperty(STRASSE, wert);
		speichern();
	}
	
	public String getPLZ(){
		 return properties.getProperty(PLZ);
	}
	
	public void setPLZ(String wert) throws AdresseException{
		properties.setProperty(PLZ, wert);
		speichern();
	}
	
	public String getOrt(){
		 return properties.getProperty(ORT);
	}
	
	public void setOrt(String wert) throws AdresseException{
		properties.setProperty(ORT, wert);
		speichern();
	}

	public String getTelefon(){
		 return properties.getProperty(TELEFON);
	}
	
	public void setTelefon(String wert) throws AdresseException{
		properties.setProperty(TELEFON, wert);
		speichern();
	}

}
//	****************************************************************************


package aufgabe.nr026.adressbuch;


public class AdresseException extends Exception {


	private static final long serialVersionUID = 1L;

	public AdresseException() {
		super();
	}

	public AdresseException(String arg0) {
		super(arg0);
	}

	public AdresseException(String arg0, Throwable arg1) {
		super(arg0, arg1);
	}

	public AdresseException(Throwable arg0) {
		super(arg0);
	}

}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;

public class Cd extends Records{

	private static final transient String TITEL = "titel";
	private static final transient String INTERPRET = "interpret";
	private static final transient String GENERE = "genere";
	private static final transient String JAHR = "jahr";
	
	
	protected Cd(File pFile) throws AdresseException  {
		//nach oben kop und mit super() diesen aufrufen
		super (pFile);
	}


	public String getTitel(){
		 return properties.getProperty(TITEL);
	}
	
	public void setTitel(String wert) throws AdresseException{
		properties.setProperty(TITEL, wert);
		speichern();
	}
	public String getInterpret(){
		 return properties.getProperty(INTERPRET);
	}
	
	public void setInterpret(String wert) throws AdresseException{
		properties.setProperty(INTERPRET, wert);
		speichern();
	}
	public String getGenere(){
		 return properties.getProperty(GENERE);
	}
	
	public void setGenere(String wert) throws AdresseException{
		properties.setProperty(GENERE, wert);
		speichern();
	}
	public String getJahr(){
		 return properties.getProperty(JAHR);
	}
	
	public void setJahr(String wert) throws AdresseException{
		properties.setProperty(JAHR, wert);
		speichern();
	}
		
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
//mport java.io.IOException
import java.util.List;


public class CdSammlung extends RecordContainer {

	public CdSammlung(String pCDVerzeichnis,String endung){
		super (pCDVerzeichnis,endung);		
	}
	
	
	public Cd getNeueCdsammlung() throws AdresseException{
		//super(adresse);
		return (Cd) getNewRecord(); 
	}

	
	public Records getInstance(File file)throws AdresseException
	
	{
		return new Cd(file);
		
	}
	
	public List getCdSammlung(){
		return records;
	}
	
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;
import java.util.ArrayList;
import java.io.File;
import java.io.IOException;

abstract class RecordContainer {
	
	public String recordVerzeichnis = null;
	public ArrayList records = null;
	public int aktuelleId = 0;
	public String dateiEndung;

	public RecordContainer(String pAdressVerzeichnis, String endung) {
		
		dateiEndung = endung;
		
		if (pAdressVerzeichnis!=null){
			
			recordVerzeichnis = pAdressVerzeichnis;
			
			File verzeichnis = new File(pAdressVerzeichnis);

			if (verzeichnis.isDirectory()){
				
				File[] dateien = verzeichnis.listFiles(new AdressbuchFilenameFilter(dateiEndung));
				records = new ArrayList();
				
				
				for (int i = 0; i < dateien.length; i++){
					
					try {
						
						Adresse adresse = new Adresse(dateien[i]);
						records.add(adresse);
						//((List) records).add(records);
						
						aktuelleId = Math.max(aktuelleId, Integer.parseInt(adresse.getId()) );
						
					} catch (AdresseException ex) {

						System.out.println("Fehler: " + ex.getMessage());
						
					}
					
				}
			}else{
				throw new IllegalArgumentException(pAdressVerzeichnis + " ist kein Verzeichnis. Bitte eine existierendes Verzeichnis angeben.");
			}
		}else{
			throw new IllegalArgumentException("Null-Wert nicht erlaubt. Argument muss ein gültiger Pfad zu einer vorhandenen oder zu erstellenden Adress-Datei sein.");
		}

	}
	
	
	
	public Records getNewRecord() throws AdresseException{
		
	String id = Integer.toString(++aktuelleId);
	File file = new File(recordVerzeichnis  + System.getProperty("file.separator") + id + dateiEndung);
	try {
		file.createNewFile();
	} catch (IOException ex) {
		throw new AdresseException("Erstellung der Datei " + file.getAbsolutePath() + " fehlgeschlagen: " + ex.getMessage());
	}
	Records record = getInstance(file);
	
	record.setId(id);
	records.add(record);
	return record;
	}

	abstract Records getInstance(File file) throws AdresseException;
	
}


//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;


public class Records {
	
	public static final transient String ID = "id";
	public Properties properties = new Properties();
	public File file = null;
	

	protected Records(File pFile) throws AdresseException{
		
		if (pFile==null){
			throw new AdresseException("Null-Wert in Konstruktor nicht erlaubt.");
		}
		
		file = pFile;
		FileInputStream fis = null;
		
		try{
			
			fis = new FileInputStream(pFile);
			properties.load(fis);
			
		}catch(FileNotFoundException ex){
			throw new AdresseException(pFile.getAbsolutePath() + " nicht gefunden.");
		}catch (IOException e) {
			throw new AdresseException("Fehler während dem lesen der Adresse in " + pFile.getAbsolutePath());
		}finally{
			try {
				fis.close();
			} catch (IOException e1) {
				throw new AdresseException("Fehler während dem lesen der Adresse in " + pFile.getAbsolutePath());
			} 
		}
	}
	

protected void speichern() throws AdresseException{
	FileOutputStream fos = null;
	try{
		fos = new FileOutputStream(file);
		properties.store(fos, "Adresse "  + getId());
	}catch(IOException ex){
		throw new AdresseException("Fehler während dem Speichern der Adresse " + getId(), ex);
	}finally{
		if (fos!=null){
			try {
				fos.close();
			} catch (IOException ex) {
				throw new AdresseException("Fehler während dem Speichern der Adresse " + getId(), ex);
			}
		}
	}
}
		protected String getId(){
			 return properties.getProperty(ID);
		}

		protected void setId(String wert) throws AdresseException{
			properties.setProperty(ID, wert);
			speichern();
		}
}
 
R

Roar

Gast
maenae hat gesagt.:
Richtige Fehlermeldungen hat das Prog. keine.
was ist das da unten denn sonst wenn keine "richtige" fehlermeldung?? sorry, in der fehlermeldung wird dir nicht nur genau gesagt was falsch läuft, sondern sogar die klasse, methode, datei und sogar die zeile in der der fehler auftritt. den fehler direkt zu posten und die dazugehörige zeile hätts auch getan. und da du keine code tags verwendet hast werd ich jetz auch nicht bis 85 zählen :?
 
M

maenae

Gast
Sorry!! Habe noch nicht so Erfahrung mit Foren.



Fehlermeldung hat gesagt.:
Test ok: Test1
Test ok: Test2
java.lang.ClassCastException
at aufgabe.nr026.adressbuch.AdressbuchTest.test3(AdressbuchTest.java:85)
at aufgabe.nr026.adressbuch.AdressbuchTest.<init>(AdressbuchTest.java:12)
at aufgabe.nr026.adressbuch.AdressbuchTest.main(AdressbuchTest.java:114)
Exception in thread "main"


Code:
//	*****************                   Code  ************************************************

package aufgabe.nr026.adressbuch;

import java.util.Iterator;
import java.util.List;

public class AdressbuchTest {

	public AdressbuchTest() {
		
	test1();
	test2();
	test3();
		
	}

	
	public void test1(){
		Adressbuch adressbuch = new Adressbuch("f:\\",".adresse");
		
		try {
			Adresse adresse = adressbuch.getNeueAdresse();
			adresse.setName("Test");
			
			List adressen = adressbuch.getAdressen();
			boolean adresseGefunden = false;
			Iterator iter = adressen.iterator();
			while (!adresseGefunden && iter.hasNext()) {
				Adresse adr = (Adresse) iter.next();
				String name = adr.getName();
				if (name != null){
					//test auf namens-gleichheit
					adresseGefunden = name.equals(adresse.getName());
				}
			}
			assertTrue("Test1", adresseGefunden);
		} catch (AdresseException e) {
			fail("Text 1: Exception: " + e.getMessage());
		}
		
	}

	
		public void test2(){
		Adressbuch adressbuch = new Adressbuch("f:\\",".adresse");
		
		try {
			Adresse adresse = adressbuch.getNeueAdresse();
			adresse.setName("Test");
			String id = adresse.getId();
			
			//adressNuch neu instanzieren
			adressbuch = new Adressbuch("f:\\",".adresse");
			List adressen = adressbuch.getAdressen();
			boolean adresseGefunden = false;
			Iterator iter = adressen.iterator();
			while (!adresseGefunden && iter.hasNext()) {
				Adresse adr = (Adresse) iter.next();
				String name = adr.getName();
				if (name != null){
					//test auf namens- und id-gleichheit
					adresseGefunden = name.equals(adresse.getName()) && adresse.getId().equals(id);
					
				}
			}
			assertTrue("Test2", adresseGefunden);
		} catch (AdresseException e) {
			fail("Text 2: Exception: " + e.getMessage());
		}
		
	}
			
		public void test3(){
			CdSammlung cdSammlung = new CdSammlung("f:\\",".cdsammlung");
			
			try {
				Cd cd2 = cdSammlung.getNeueCdsammlung();
				cd2.setTitel("CDTitel");
				
				List cds = cdSammlung.getCdSammlung();
				boolean adresseGefunden = false;
				Iterator iter = cds.iterator();
				while (!adresseGefunden && iter.hasNext()) {
					Cd cd1 = (Cd) iter.next();
					String titel = cd1.getTitel();
					if (titel != null){
						//test auf namens-gleichheit
						adresseGefunden = titel.equals(cd2.getTitel());
					}
				}
				assertTrue("TestCD", adresseGefunden);
			} catch (AdresseException e) {
				fail("Text 1: Exception: " + e.getMessage());
			}
			
		}

	public void assertTrue(String message, boolean assertArg){
		if (!assertArg){
			System.out.print("FEHLER!: ");
		}else{
			System.out.print("Test ok: ");
		}
		System.out.println(message);
	}

	public void fail(String message){
		System.out.println("FEHLER!: " + message);
	}
	
	public static void main(String[] args) {
		new AdressbuchTest();
	}
}
//	****************************************************************************

package aufgabe.nr026.adressbuch;

import java.io.File;


import java.util.List;

public class Adressbuch extends RecordContainer {


	
	public Adressbuch(String pAdressVerzeichnis, String endung){
			super (pAdressVerzeichnis, endung);	
	}
	
	
	public Adresse getNeueAdresse() throws AdresseException{
			return (Adresse) getNewRecord(); 
	}
	
	
	public Records getInstance(File file)throws AdresseException {
		return (Records)new Adresse(file);
	}
	
	public List getAdressen(){
		return records;
	}
	
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
import java.io.FilenameFilter;

public class AdressbuchFilenameFilter implements FilenameFilter {
//konstruktor erstellen damit fileendung mitgegeben werden kann.
	
	public String dEndung;
	
	public  AdressbuchFilenameFilter(String dateiEndung){
		dEndung = dateiEndung;
	}
	
	public boolean accept(File dir, String name) {
		return  name.endsWith(dEndung); //name.endsWith(Adressbuch.dateiEndung);
	}

}

//	****************************************************************************

package aufgabe.nr026.adressbuch;

import java.io.File;

public class Adresse extends Records {

	
	private static final transient String NAME = "name";
	private static final transient String VORNAME = "vorname";
	private static final transient String STRASSE = "strasse";
	private static final transient String PLZ = "plz";
	private static final transient String ORT = "ort";
	private static final transient String TELEFON = "telefon";
	
	protected Adresse(File pFile) throws AdresseException  {
		super (pFile); 		
	}
	
	public String getName(){
		 return properties.getProperty(NAME);
	}
	
	public void setName(String wert) throws AdresseException{
		properties.setProperty(NAME, wert);
		 
		speichern();
	}

	public String getVorname(){
		 return properties.getProperty(VORNAME);
		  
	}
	
	public void setVorname(String wert) throws AdresseException{
		properties.setProperty(VORNAME, wert);
		speichern();
	}

	public String getStrasse(){
		 return properties.getProperty(STRASSE);
	}
	
	public void setStrasse(String wert) throws AdresseException{
		properties.setProperty(STRASSE, wert);
		speichern();
	}
	
	public String getPLZ(){
		 return properties.getProperty(PLZ);
	}
	
	public void setPLZ(String wert) throws AdresseException{
		properties.setProperty(PLZ, wert);
		speichern();
	}
	
	public String getOrt(){
		 return properties.getProperty(ORT);
	}
	
	public void setOrt(String wert) throws AdresseException{
		properties.setProperty(ORT, wert);
		speichern();
	}

	public String getTelefon(){
		 return properties.getProperty(TELEFON);
	}
	
	public void setTelefon(String wert) throws AdresseException{
		properties.setProperty(TELEFON, wert);
		speichern();
	}

}
//	****************************************************************************


package aufgabe.nr026.adressbuch;


public class AdresseException extends Exception {


	private static final long serialVersionUID = 1L;

	public AdresseException() {
		super();
	}

	public AdresseException(String arg0) {
		super(arg0);
	}

	public AdresseException(String arg0, Throwable arg1) {
		super(arg0, arg1);
	}

	public AdresseException(Throwable arg0) {
		super(arg0);
	}

}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;

public class Cd extends Records{

	private static final transient String TITEL = "titel";
	private static final transient String INTERPRET = "interpret";
	private static final transient String GENERE = "genere";
	private static final transient String JAHR = "jahr";
	
	
	protected Cd(File pFile) throws AdresseException  {
		//nach oben kop und mit super() diesen aufrufen
		super (pFile);
	}


	public String getTitel(){
		 return properties.getProperty(TITEL);
	}
	
	public void setTitel(String wert) throws AdresseException{
		properties.setProperty(TITEL, wert);
		speichern();
	}
	public String getInterpret(){
		 return properties.getProperty(INTERPRET);
	}
	
	public void setInterpret(String wert) throws AdresseException{
		properties.setProperty(INTERPRET, wert);
		speichern();
	}
	public String getGenere(){
		 return properties.getProperty(GENERE);
	}
	
	public void setGenere(String wert) throws AdresseException{
		properties.setProperty(GENERE, wert);
		speichern();
	}
	public String getJahr(){
		 return properties.getProperty(JAHR);
	}
	
	public void setJahr(String wert) throws AdresseException{
		properties.setProperty(JAHR, wert);
		speichern();
	}
		
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
//mport java.io.IOException
import java.util.List;


public class CdSammlung extends RecordContainer {

	public CdSammlung(String pCDVerzeichnis,String endung){
		super (pCDVerzeichnis,endung);		
	}
	
	
	public Cd getNeueCdsammlung() throws AdresseException{
		//super(adresse);
		return (Cd) getNewRecord(); 
	}

	
	public Records getInstance(File file)throws AdresseException
	
	{
		return new Cd(file);
		
	}
	
	public List getCdSammlung(){
		return records;
	}
	
}

//	****************************************************************************


package aufgabe.nr026.adressbuch;
import java.util.ArrayList;
import java.io.File;
import java.io.IOException;

abstract class RecordContainer {
	
	public String recordVerzeichnis = null;
	public ArrayList records = null;
	public int aktuelleId = 0;
	public String dateiEndung;

	public RecordContainer(String pAdressVerzeichnis, String endung) {
		
		dateiEndung = endung;
		
		if (pAdressVerzeichnis!=null){
			
			recordVerzeichnis = pAdressVerzeichnis;
			
			File verzeichnis = new File(pAdressVerzeichnis);

			if (verzeichnis.isDirectory()){
				
				File[] dateien = verzeichnis.listFiles(new AdressbuchFilenameFilter(dateiEndung));
				records = new ArrayList();
				
				
				for (int i = 0; i < dateien.length; i++){
					
					try {
						
						Adresse adresse = new Adresse(dateien[i]);
						records.add(adresse);
						//((List) records).add(records);
						
						aktuelleId = Math.max(aktuelleId, Integer.parseInt(adresse.getId()) );
						
					} catch (AdresseException ex) {

						System.out.println("Fehler: " + ex.getMessage());
						
					}
					
				}
			}else{
				throw new IllegalArgumentException(pAdressVerzeichnis + " ist kein Verzeichnis. Bitte eine existierendes Verzeichnis angeben.");
			}
		}else{
			throw new IllegalArgumentException("Null-Wert nicht erlaubt. Argument muss ein gültiger Pfad zu einer vorhandenen oder zu erstellenden Adress-Datei sein.");
		}

	}
	
	
	
	public Records getNewRecord() throws AdresseException{
		
	String id = Integer.toString(++aktuelleId);
	File file = new File(recordVerzeichnis  + System.getProperty("file.separator") + id + dateiEndung);
	try {
		file.createNewFile();
	} catch (IOException ex) {
		throw new AdresseException("Erstellung der Datei " + file.getAbsolutePath() + " fehlgeschlagen: " + ex.getMessage());
	}
	Records record = getInstance(file);
	
	record.setId(id);
	records.add(record);
	return record;
	}

	abstract Records getInstance(File file) throws AdresseException;
	
}


//	****************************************************************************


package aufgabe.nr026.adressbuch;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;


public class Records {
	
	public static final transient String ID = "id";
	public Properties properties = new Properties();
	public File file = null;
	

	protected Records(File pFile) throws AdresseException{
		
		if (pFile==null){
			throw new AdresseException("Null-Wert in Konstruktor nicht erlaubt.");
		}
		
		file = pFile;
		FileInputStream fis = null;
		
		try{
			
			fis = new FileInputStream(pFile);
			properties.load(fis);
			
		}catch(FileNotFoundException ex){
			throw new AdresseException(pFile.getAbsolutePath() + " nicht gefunden.");
		}catch (IOException e) {
			throw new AdresseException("Fehler während dem lesen der Adresse in " + pFile.getAbsolutePath());
		}finally{
			try {
				fis.close();
			} catch (IOException e1) {
				throw new AdresseException("Fehler während dem lesen der Adresse in " + pFile.getAbsolutePath());
			} 
		}
	}
	

protected void speichern() throws AdresseException{
	FileOutputStream fos = null;
	try{
		fos = new FileOutputStream(file);
		properties.store(fos, "Adresse "  + getId());
	}catch(IOException ex){
		throw new AdresseException("Fehler während dem Speichern der Adresse " + getId(), ex);
	}finally{
		if (fos!=null){
			try {
				fos.close();
			} catch (IOException ex) {
				throw new AdresseException("Fehler während dem Speichern der Adresse " + getId(), ex);
			}
		}
	}
}
		protected String getId(){
			 return properties.getProperty(ID);
		}

		protected void setId(String wert) throws AdresseException{
			properties.setProperty(ID, wert);
			speichern();
		}
}
 

SnooP

Top Contributor
L-ectron-X hat gesagt.:
Ein Posting mit der kompletten Fehlermeldung, sowie der Methode/Zeile, in der die Exception auftritt, hätte völlig ausgereicht.

Das wäre toll gewesen ;) ... die Zeile in der die Exception auftritt - nämlich Zeile 85 in der Methode test3()...

ich schätze mal es ist das casten der Objekte aus dem Iterator nach Cd... - allerdings hab ich den konkreten Fehler jetzt noch nicht gefunden. Nen Ansatz wäre mit System.out.println die Objekte an der Stelle mal ausgeben zu lassen, daran kann man dann erkennen ob tatsächlich cds in der liste drinstehen oder was ganz anderes.
 

byte

Top Contributor
wenn ich mich jetzt in dem wirrwarr an code nicht verguckt habe, dann liegen in der liste, die in zeile 85 iteriert werden, keine cds sondern adressen. denn in CdSammlung liefert getCdSammlung() ne liste aus der oberklasse von CdSammlung (also RecordContainer) und dort wird diese liste mit objekten vom typ Adresse gefüllt (zeile 406). und da Adresse keine unterklasse von Cd ist, kannst du auch entsprechend die elemente des iterators nicht auf Cd casten. du müsstest auf Records oder halt Adresse casten.

//edit: bitte nächstes mal nur relevanten code posten!
 
M

maenae

Gast
Besten Dank! Es hat geklappt, hätte ich eigentlich selber merken sollen!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
C Hilfe!!! java.lang.ClassCastException Java Basics - Anfänger-Themen 1
P java.lang.ClassCastException Java Basics - Anfänger-Themen 2
D java.lang.ClassCastException - Woran kann es liegen? Java Basics - Anfänger-Themen 6
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
H JUnit in Eclipse: java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 9
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 3
J Erste Schritte java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 4
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
T Compiler-Fehler java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 2
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Erste Schritte java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
R java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
K Caused by: java.lang.NoClassDefFoundError: org/mindrot/jbcrypt/BCrypt Java Basics - Anfänger-Themen 0
S java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 4
OnDemand java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 9
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
J Klassen java.lang.String - lexikographisches Sortieren Java Basics - Anfänger-Themen 5
P Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 3
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H Classpath java.lang.NoClassDefFoundError externe Libary Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
H java.lang.IndexOutOfBoundsException bei verschachtelter ArrayList Java Basics - Anfänger-Themen 9
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
V java.lang.NoSuchMethodError Java Basics - Anfänger-Themen 2
J java.lang.math asin() Java Basics - Anfänger-Themen 18
I Erste Schritte Ausführfehler: java.lang.NullPointerException Java Basics - Anfänger-Themen 3
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
G java.lang.ClassNotFoundException Java Basics - Anfänger-Themen 4
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 10
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
D java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 11
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
S Compiler-Fehler java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Java Basics - Anfänger-Themen 5
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
A Compiler-Fehler unreported exception java.lang.Exception; must be caught or declared to be thrown Java Basics - Anfänger-Themen 7
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
J java.lang.NullPointerException Java Basics - Anfänger-Themen 18
K Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 6
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2
K OOP java.lang.NullPointerException Java Basics - Anfänger-Themen 2
N iText PDF Fehler, java.lang.ClassNotFoundException: com.lowagie.text.Phrase Java Basics - Anfänger-Themen 7
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
H java.lang.NoSuchMethodError: Java Basics - Anfänger-Themen 5
J java.lang.UnsatisfiedLinkError: Java Basics - Anfänger-Themen 9
T List in java.lang.Object... einfügen Java Basics - Anfänger-Themen 12
M java.lang.StringTokenizer Java Basics - Anfänger-Themen 4
I java.lang.String cannot be cast to OBJEKT Java Basics - Anfänger-Themen 8
P java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory Java Basics - Anfänger-Themen 1
Y java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 9
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
D java.lang.outofmemoryerror java heap space bei Hashtable Java Basics - Anfänger-Themen 3
Spin Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data must Java Basics - Anfänger-Themen 10
S Fehlermeldung: java.lang.NullPointerException Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben