[Java] serialVersionUID

Résolu/Fermé
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 14 nov. 2009 à 23:31
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 15 nov. 2009 à 00:19
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
A voir également:

3 réponses

sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
15 nov. 2009 à 00:08
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;

++
3
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
15 nov. 2009 à 00:19
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: https://java.developpez.com/faq/java?page=Warnings#WARNING_serial


++
2
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
15 nov. 2009 à 00:13
Ç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 ?
0