Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Lista in una classe

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129

    Lista in una classe

    Salve a tutti!!!

    Ho fatto una classe e all'interno di questa classe ho un dato di tipo List, che pero' non so quanto sarà grande visto che varia in base ai dati estratti dal database.
    Allora ho creato un attributo della classe:
    codice:
    public List list = new ArrayList();
    e due metodi, uno per estrarre e uno per settarla. Il primo
    codice:
    public static List getLista() throws SQLException {
    
    
    				return list;
    }
    e il secondo

    codice:
    public static void searchOfferte(Dati dati) throws SQLException {
    ...................
    ..................
    ................
    
    }

    Il problema è che quando compla mi da errore: non-static variable list cannot be referenced from a static context

    Come faccio???

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Lista in una classe

    Originariamente inviato da Mitttico
    Il problema è che quando compla mi da errore: non-static variable list cannot be referenced from a static context
    Ovvio ... il campo 'list' è di "istanza" mentre i due metodi sono di "classe". Perché hai dichiarato i metodi static???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129
    Quindi la soluzione quale sarebbe per te?

    basta tirare via static?


    Ho prova to a togliere static, sembra parta, ma quando vado in esecuzione mi da un errore sul file jsp che va a richiamare il metodo del file java descritto sopra:

    An error occurred at line: 58
    cannot make a static reference to the non-static method getLista() from the type OffertaMia

    58: List offerte = OffertaMia.getLista();
    59:
    60: for (int i = 0; i < offerte.size(); i++) {
    61: Offerta offerta = (Offerta)offerte.get(i);

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mitttico
    An error occurred at line: 58
    cannot make a static reference to the non-static method getLista() from the type OffertaMia

    58: List offerte = OffertaMia.getLista();
    Deduco che OffertaMia sia proprio il nome della classe dove hai quei metodi. Ovviamente non va bene. Non puoi invocare quei metodi di istanza tramite il nome della classe .... come se fossero di classe!!! Devi creare una istanza di quella tua classe!!!

    P.S. scusa se lo dico ... ma stai usando cose abbastanza avanti come collezioni, pagine jsp, ecc.... e non hai ancora nemmeno chiara la differenza tra "di classe" e "di istanza" ......
    Consiglierei un buon e valido libro sulle basi di Java!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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