Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    Errore stampa di un ArrayList

    codice:
    Main.java:
    public class Main {
    	public static void main(String[] args) {
    		Panino p = new Panino();
    		
    		p.addIngrediente(Panino.Ingrediente.SALAME);
    		p.addIngrediente(Panino.Ingrediente.MAIONESE);
    		p.stampaPanino();
    	}
    }
    
    
    
    Panino.java:
    import java.util.ArrayList;
    import java.io.*;
    
    public class Panino {
    	ArrayList<Ingrediente> ingredienti = new ArrayList<Ingrediente>();
    	
    	public enum Ingrediente { 
    		PROSCIUTTO, SALAME,
    		SOTTILETTA, MOZZARELLA,
    		MAIONESE, SENAPE
    	}
    	
    	// L'eccezione è unchecked
    	public void addIngrediente(Ingrediente i){
    		ingredienti.add(i);
    	}
    	
    	public void stampaPanino(){
    		System.out.print("Il panino ha i seguenti ingredienti:\n");
    		for (int i = 0; i < ingredienti.size(); i++ ){
    			System.out.print("Ingrediente " , ingredienti[i].get());
    		}		
    	}
    }
    Ottengo il seguente errore:
    codice:
    .\Panino.java:21: array required, but java.util.ArrayList<Panino.Ingrediente> fo
    und
                            System.out.print("Ingrediente " , ingredienti[i].get());
    
                                                                         ^
    1 error
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Ciao,
    per visitare un elemento di un ArrayList devi usare il metodo get(i)
    codice:
    public void stampaPanino(){
    		System.out.print("Il panino ha i seguenti ingredienti:\n");
    		for (int i = 0; i < ingredienti.size(); i++ ){
    			System.out.print("Ingrediente " , ingredienti.get(i));
    		}		
    	}

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Un suggerimento, la enum Ingrediente la puoi dichiarare in un file a parte Ingrediente.java, così da non dover scrivere sempre Panino.Ingrediente per accederci
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Originariamente inviato da Nikopol
    Ciao,
    per visitare un elemento di un ArrayList devi usare il metodo get(i)
    codice:
    public void stampaPanino(){
    		System.out.print("Il panino ha i seguenti ingredienti:\n");
    		for (int i = 0; i < ingredienti.size(); i++ ){
    			System.out.print("Ingrediente " , ingredienti.get(i));
    		}		
    	}
    Inoltre il metodo System.out.println non prevede la virgola , al massimo un + per concatenare
    codice:
    public void stampaPanino(){
    		System.out.print("Il panino ha i seguenti ingredienti:\n");
    		for (int i = 0; i < ingredienti.size(); i++ ){
    			System.out.print("Ingrediente: " + ingredienti.get(i));
    		}		
    	}

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Perfetto, grazie.
    Ora mi dà un errore a run time:

    codice:
    Exception in thread "main" java.lang.NoSuchMethodError: main
    Con i sogni possiamo conoscere il futuro...

  6. #6
    codice:
    import java.util.ArrayList;
    import java.io.*;
    
    public class Panino {
    	ArrayList<Ingrediente> ingredienti = new ArrayList<Ingrediente>();
    	
    	public enum Ingrediente { 
    		PROSCIUTTO, SALAME,
    		SOTTILETTA, MOZZARELLA,
    		MAIONESE, SENAPE
    	}
    	
    	// L'eccezione è unchecked
    	public void addIngrediente(Ingrediente i){
    		ingredienti.add(i);
    	}
    	
    	public void stampaPanino(){
    		System.out.print("Il panino ha i seguenti ingredienti:\n");
    		for (int i = 0; i < ingredienti.size(); i++ ){
    			System.out.print("Ingrediente "+i+" " + ingredienti.get(i)+" ");
    		}		
    	}
    }

    codice:
    public class Main {
    	public static void main(String[] args) {
    		Panino p = new Panino();
    		
    		p.addIngrediente(Panino.Ingrediente.SALAME);
    		p.addIngrediente(Panino.Ingrediente.MAIONESE);
    		p.stampaPanino();
    	}
    }
    A me funzione perfettamente :
    ecco l'output:

    codice:
    Il panino ha i seguenti ingredienti:
    Ingrediente 0 SALAME Ingrediente 1 MAIONESE

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gaten
    Perfetto, grazie.
    Ora mi dà un errore a run time:

    codice:
    Exception in thread "main" java.lang.NoSuchMethodError: main
    Come e da dove esegui?
    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.