Rechercher : dans
Par :

[Java] serialVersionUID

Dernière réponse le 15 nov 2009 à 00:19:09 KX, le 14 nov 2009 à 23:31:36 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un gros projet en Java, et quand je le compile ça me met juste 1 warning, mais j'arrive pas à comprendre à quoi il correspond, d'autant que ma classe est vraiment très simple :

package projet;

import java.util.LinkedList;

public class SyntaxeListe extends LinkedList<Syntaxe>
{
	public String toString()
	{
		String s=new String("\nSyntaxeListe:");
		for (int i=0; i<size(); i++)
			s=s+"\n"+get(i).toString();
		return s+"\n\n";
	}
}

Et voici le résultat de ma commande :

C:\java>javac -Xlint projet\*.java
projet\SyntaxeListe.java:5:warning: [serial] serializable class projet.SyntaxeListe has no definition of SerialVersionUID
public class SyntaxeListe extends LinkedListe<Syntaxe>
       ^
Si quelqu'un pouvait m'expliquer ce qui se passe et comment corriger le code, merci d'avance La confiance n'exclut pas le contrôle 
Configuration: Windows XP SP3
Java SE 1.6.0_16

Meilleures réponses pour « [Java] serialVersionUID » dans :
Java - Les types de données Voir Les primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Premier programme Voir Première application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition Voir Introduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Java - Les packages VoirIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...
Java - L'héritage VoirLa notion d'héritage Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de...

1

sandul, le 15 nov 2009 à 00:08:51
  • +1

Salut,

Ce n'est pas grand-chose... Si pas de SUID défini, la machine virtuelle en génère un automatiquement à l'exécution. Si tu veux te débarrasser de cet avertissement, rajoute cette ligne à ta classe:

private static final long serialVersionUID = 1L;

++ A man would die, though he were neither valiant nor miserabl­e,
only upon a weariness to do the same thing so oft over and o­ver. [Bacon]

Répondre à sandul

2

KX, le 15 nov 2009 à 00:13:22

Ça marche merci, mais comment expliquer que cet avertissement apparaisse pour cette classe et pas pour les autres, alors que je n'avais jamais précisé serialVersionUID auparavant ? La confiance n'exclut pas le contrôle 

Répondre à KX

3

 sandul, le 15 nov 2009 à 00:19:09

L'avertissement apparaîtra pour toutes les classes implémentant Serializable. Ta classe étend LinkedList qui est définie de cette manière:

public class java.util.LinkedList extends java.util.AbstractSequentialList implements java.util.List, java.util.Deque, java.lang.Cloneable, java.io.Serializable


Explication sommaire du machin ici: http://java.developpez.com/faq/java/?page=warnings#WARNING_s­erial


++

Répondre à sandul