Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Errore che non riesco a capire

    Ciao a tutti ho un problema di cui non ne riesco a venire a capo; ho una classe Veicolo che avevo precedentemente scritto che è la seguente:
    codice:
    public class Veicolo implements Serializable
    {
    	private String marca,nome,cilindrata;
    	private int potenza;
    	private Hashtable <String,Collaudo> lista_collaudi;
    	private float Media;
    	public Veicolo(String marca,String nome,String cilindrata,int potenza)
    	{
    		this.marca=marca;
    		this.nome=nome;
    		this.cilindrata=cilindrata;
    		this.potenza=potenza;
    		lista_collaudi=new Hashtable<String,Collaudo>();
    	}
    	public String getMarca()
    	{
    		return marca;
    	}
    	public String getNome()
    	{
    		return nome;
    	}
    	public String getCilindrata()
    	{
    		return cilindrata;
    	}
    	public int getPotenza()
    	{
    		return potenza;
    	}
    	public Hashtable<String,Collaudo> getListaCollaudi()
    	{
    		return lista_collaudi;
    	}
    	public void addCollaudo(String nome_app,Collaudo app_C)
    	{
    		lista_collaudi.put(nome_app,app_C);
    	}
    	public float getMediaRumore()
    	{
    		int n=0;
    		float somma_rumore=0;
    		Enumeration h= lista_collaudi.keys();
    		while(h.hasMoreElements())
    		{
    			String name_app=(String)h.nextElement();
    			Collaudo collaudo_app=lista_collaudi.get(name_app);
    			somma_rumore=somma_rumore+collaudo_app.getRumorosita();
    			n++;
    			Media=(somma_rumore)/n;
    		}
    		return Media;
    	}
    }
    Questa classe fa parte di un applicazione client-server e funzionava tutto bene, poi per comodità ho aggiunto il metodo getMediaRumore(); e l'applicazione non va pi quando compilo non mi da nessun errore ma appenala la avvio mi da la seguente eccezione:
    JAVA.IO Invalid Class Exception:Veicolo local class incompatible
    Che cosa significa?? Se elimino il metodo che ho aggiunto ritorna a funzionare tutto normalmente.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Errore che non riesco a capire

    Originariamente inviato da identikit_man
    poi per comodità ho aggiunto il metodo getMediaRumore(); e l'applicazione non va pi quando compilo non mi da nessun errore ma appenala la avvio mi da la seguente eccezione:
    JAVA.IO Invalid Class Exception:Veicolo local class incompatible
    Che cosa significa?? Se elimino il metodo che ho aggiunto ritorna a funzionare tutto normalmente.
    Veicolo è Serializable e suppongo (vista anche l'eccezione) che i suoi oggetti li stai serializzando. Hai aggiunto un campo di tipo float. Questo renderebbe incompatibile la classe se hai stream salvati con la "vecchia" versione della classe.
    È un problema legato alla serializzazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Come dovrei risolvere il tutto??

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da identikit_man
    Come dovrei risolvere il tutto??
    Evita di deserializzare roba serializzata a partire dalla vecchia versione della classe.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.