Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Istruzioni deprecate

  1. #1

    Istruzioni deprecate

    Salve, ho ripreso un vecchio programmino realizzato durante un corso Java qualche anno fa, e ricompilandolo il prompt mi segnala che uso o sovrascrivo API deprecate...

    Lanciando -Xlint, ottengo tre avvisi:
    - il metodo show() è deprecato;
    - in corrispondenza di due classi del progetto, [serial] serializable class NomeClasse has no definition of serialVersionUID.

    Vorrei capire come risolvere, dato che il programmino comunque funziona.

    Dovrei sostituire a show() il metodo setVisible(true), ma a differenza di altri esempi, qui non mi viene accettato in quanto metodo non static in un contesto static.

    Non ho invece proprio idea del secondo avviso... Trovo rimandi a intere discussioni per me cervellotiche, senza un esempio univoco di come risolvere.

    Uso Java 8 Update 251.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    - il metodo show() è deprecato;
    Se intendi il show() di java.awt.Component (anche dei Frame/JFrame ecc..) è deprecato da una marea di tempo (dal JDK 1.1 !). Al suo posto va usato setVisible(boolean)

    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    - in corrispondenza di due classi del progetto, [serial] serializable class NomeClasse has no definition of serialVersionUID.
    Quando una classe è Serializable ("serializzabile"), dovrebbe anche avere il field statico serialVersionUID per indicare la "versione" al fine di gestire e verificare la compatibilità nella (de)serializzazione.
    Può essere gestito "a mano" come numero sequenziale es. 1 ... 2 ... ecc.... oppure può essere generato (da un IDE) in base alla definizione della classe.

    Se manca non è un grosso problema (sicuramente se quei oggetti non vengono mai (de)serializzati), viene auto-generato dalla definizione della classe. Ma il compilatore segnala comunque un warning per la mancanza.

    Basta far generare ad un IDE il serialVersionUID, anche solo con il valore predefinito (che generalmente è 1):
    codice:
    private static final long serialVersionUID = 1L;

    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Dovrei sostituire a show() il metodo setVisible(true), ma a differenza di altri esempi, qui non mi viene accettato in quanto metodo non static in un contesto static.
    Chiarisci meglio allora ... perché non è chiaro il contesto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Ok sistemato tutto.
    La questione della serializzazione non l'avevo mai incontrata nelle altre semplici GUI create, sempre da codice: cioè javac non produceva mai warning a riguardo.
    Lo show() sbagliavo a sostituirlo perché saltavo la creazione dell'istanza della classe cui applicare setVisible(true).

    Grazie mille.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.