Se débarrasser du commentaire ci-dessus serialVersionUID généré par Eclipse

C'est devenu une bête noire pour moi. J'écris une classe, et implémente Serializible. Puis eclipse me prévient que je n'ai pas de serialVersionUID, donc je sélectionne "Ajouter généré serialVersionUID" ou "Add default serialVersionUID" et je me retrouve avec quelque chose comme ceci:

  /**
   * 
   */
  private static final long serialVersionUID = 4049849541314027178L;

La plupart du temps, Je ne veux pas ajouter de commentaire, donc je dois aller supprimer le commentaire. Je préférerais que la valeur par défaut ne soit pas un commentaire, mais j'ai regardé à travers les modèles de code dans les préférences et je n'ai pas compris comment faire pour changer cela. Je veux simplement que cela ressemble à ceci:

  private static final long serialVersionUID = 4049849541314027178L;
24
demandé sur Community 2014-02-07 19:06:04

2 réponses

Il utilise le modèle pour n'importe quel champ généré par eclipse.

Vous pouvez le changer dans

 Preferences -> 
     Java -> 
        Code Style -> 
           Code Templates -> 
              Comments -> 
                 Fields

... soit globalement ou par projet.

26
répondu slim 2014-02-07 15:13:34

Pour l'expliquer plus loin à partir de la première réponse, les commentaires générés automatiquement pour le serialVersionUID sont simplement une génération de modèle de commentaire qui s'applique à tous les champs, y compris celui-ci. Il s'exécute lorsque vous générez un commentaire d'élément (Alt+Shift+J) pour ce champ à partir de la section Source de la barre d'outils.

Le fait important est que la génération de commentaires de champ aussi s'exécute automatiquement lorsque vous quick-fix

La classe sérialisable [ClassName] ne déclarer un champ serialVersionUID final statique de type long "

Désactivation/changement de commentaires générés pour tous les champs

Vous pouvez empêcher la génération de commentaires pour tous les champs en cliquant sur edit et effaçant le commentaire après avoir effectué ce que le répondeur d'origine @slim a répondu, comme dans

Toolbar -> Window -> Preferences -> Java -> Code Style -> Code Templates -> Comments -> Fields

Après avoir corrigé rapidement l'avertissement sérialisable , notez que le commentaire n'est pas plus auto-généré.

Désactivation/évolution de la génération automatique des commentaires juste pour SerialVersionUID

Malheureusement, il n'y a pas d'option pour empêcher la génération automatique de commentaires pour le SerialVersionUID par une correction rapide sans supprimer le modèle de génération de commentaires pour tous les champs. Il n'y a pas une telle option lors de la recherche de "commentaire" ou "série" dans les préférences.

Heureusement, cela n'a pas beaucoup d'importance puisque pour les autres champs, il ne génère que lorsque vous générer un commentaire d'élément pour ce champ. Et vous pouvez également préférer Commenter ou Javadoc champs manuellement.

Exemple

Cet extrait de code (seuls les champs affichés) montre cet avertissement sur la sérialisation.

public class SomePanel extends JPanel {
    private String name;
    /* ... */
}

Vous corrigez rapidement cet avertissement, et vous générez un commentaire d'élément dans le champ name. Sans supprimer le modèle, vous obtenez ceci, que vous ne voulez pas pour serialVersionUID:

public class SomePanel extends JPanel {
    /**
     *
     */
    private static final long serialVersionUID = -5173652620102412871L;
    /**
     * 
     */
    private String name;
    /* ... */
}

Après avoir supprimé le modèle pour la génération de commentaires des champs, vous obtenez, comme prévu:

public class SomePanel extends JPanel {
    private static final long serialVersionUID = 1L;
    private String name;
    /* ... */
}
0
répondu Mulliganaceous 2018-07-05 17:32:43