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

    [java] Warning e -Xlint

    salve a tutti,
    al momento della compilazione del mio programma, mi vengono date delle note che mi suggeriscono di compilare con -Xlint per sapere queste "operazioni potenzialmente pericolose". Premettendo che il programma funziona bene.
    Compilando in questo modo ho questa serie di warning:
    warning:[serial] serializable class App has no definition of serial VersionUID

    warning:[rawtypes]found raw type:JList
    private JList list;
    missing type arguments for generics class JList<E> where E is a type-variable:E extends Object declared in class JList

    warning:[unchecked] unchecked cast
    LinkedList<App> lista=(LinkedList<App>)ois.readObject();
    required: LinkedLidList<App>

    adesso il problema credo che sta nella JList che ho creato, perchè se ad esempio non la metto non ho questi problemi,ma non capisco qual'è

    grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il primo warning indica che hai una classe che implementa Serializable senza dichiarare il serial version uid.

    Puoi risolvere dichiarando un attributo serialVersionUID:

    private/public/protected/nulla static final long serialVersionUID = 123L; // metti il numero che vuoi

    http://stackoverflow.com/questions/1...on-uid-in-java

    Per il secondo warning (stai usando Java 7 giusto?), indica nella JList il tipo degli oggetti che contiene.

    JList<TIPO> list = new JList<TIPO>();

    Il terzo warning così ad occhio mi sembra non si possa togliere, magari posta il pezzo di codice in questione. Se sei sicuro di quello che fai mettilo in ignore
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    grazie tantissimo intanto
    scusami ma non ho mai sentito parlare di questo attributo SerialVersionUID.
    in pratica quando implemento una classe con Serializable devo aggiungere questo attributo?


    per la seconda grazie, non ne avevo idea che dovevo usare i generics pure nella JList(si usao java 7).


    il terzo in pratica lo uso perchè uso una comunicazione Server-Client ,dove il Client invia ad esempio una stringa e il server da quella stringa si prende degli oggetti,li mette in una lista e passa questa lista al Client.
    Codice Client
    codice:
    public void ordine(){ 
    try{ 
    Socket s=new Socket("localhost",30001);
    ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream()); 
    ObjectInputStream ois=new ObjectInputStream(s.getInputStream()); 
    String nome=JOptionPane.showInputDialog("Inserisci nome"); 			 oos.writeObject(nome); 
    oos.flush(); 
    LinkedList<App> listaordine=(LinkedList<App>)ois.readObject(); 
    float p=(float)ois.readObject(); 			 			clientegui.visualizza(listaordine); 
    clientegui.settaTextArea("Costo totale ordine:"+p); 			 		}catch(UnknownHostException exc){System.out.println("Host sconosciuto");} 		catch(Exception e){e.printStackTrace();} 	}

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da TommyR222
    grazie tantissimo intanto
    scusami ma non ho mai sentito parlare di questo attributo SerialVersionUID.
    in pratica quando implemento una classe con Serializable devo aggiungere questo attributo?
    Sì, al link che ho postato trovi la spiegazione del perché.


    Originariamente inviato da TommyR222
    per la seconda grazie, non ne avevo idea che dovevo usare i generics pure nella JList(si usao java 7).
    Questa cosa è stata aggiunta da Java 7

    Originariamente inviato da TommyR222
    il terzo in pratica lo uso perchè uso una comunicazione Server-Client [...]
    codice:
    @SuppressWarnings("unchecked")
    public void ordine() {
        ...
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    grazie, ma adesso invece ho un problema andando a mettere il generics alla JList, infatti ho un metodo che mi permette,data una lista, di visualizzarmi il contenuto nella Jlist stessa:
    codice:
    public void visualizza(Collection<Numero> lista){ 
    list.setListData(lista.toArray(new Object[0])); 	}
    mi da questo errore di compilazione:
    error no suitable method found fot setListData(Object[])

    method JList.setListData(Vector<? extends Numero)) is not applicable(actual argument Object[] cannot be converted to Vector<? extends Numero> by method invocation conversion)

    methos JList.setListData(Numero[]) is not applicable(actual argument Object[] cannot be converted to Numero[] by method invocation conversion).

    come posso sistemare?
    (sempre grazie )

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da TommyR222
    grazie, ma adesso invece ho un problema andando a mettere il generics alla JList, infatti ho un metodo che mi permette,data una lista, di visualizzarmi il contenuto nella Jlist stessa:
    codice:
    public void visualizza(Collection<Numero> lista){ 
    list.setListData(lista.toArray(new Object[0])); 	}
    mi da questo errore di compilazione:
    error no suitable method found fot setListData(Object[])

    method JList.setListData(Vector<? extends Numero)) is not applicable(actual argument Object[] cannot be converted to Vector<? extends Numero> by method invocation conversion)

    methos JList.setListData(Numero[]) is not applicable(actual argument Object[] cannot be converted to Numero[] by method invocation conversion).

    come posso sistemare?
    (sempre grazie )
    Te lo dice il compilatore cosa fare, lo hai letto il messaggio di errore? Stai passando un Object[] ad un metodo che accetta o Numero[] o Collection<Numero>. Fai in modo che quell'Object[] diventi di uno di quei tipi...
    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.