Lambda

di il
2 risposte

Lambda

    prodotto_esporta.addActionListener((e) -> {
                String titoli[] = {"Prodotti", "Clienti", "Fornitori", "Utenti", "Vendite", "Acquisti", "Reparti", "Cronologia", "Cestino"};
                JTable tabelle[] = {tabella_prodotti};
                new CLASSE_ALTRO().esporta_(
                        titoli[i],
                        tabelle[i]);
            });


Che cosa devo fare? Grazie !:)

2 Risposte

  • Re: Lambda

    p0ll0_ ha scritto:


    Che cosa devo fare?
    La variabile i viene modificata dal for, quindi non può essere concettualmente effectively final, né può essere marcata final. Pertanto non la puoi usare nel corpo della lambda.

    Però puoi copiare il valore di i in una variabile che NON modificherai.

    int i2 = i;

    e i2 la usi nella lambda (es. titoli[i2] nella lambda è ok)
  • Re: Lambda

    Non da nessun errore,ma il codice non funziona
      JMenu Esporta = new JMenu("Esporta");
            String tito[] = {"Prodotti", "Clienti", "Fornitori", "Utenti", "Vendite", "Acquisti", "Reparti", "Cronologia", "Cestino"};
            for (int i = 0; i < 1; i++) {
                JMenuItem prodotto_esporta = new JMenuItem(tito[i]);
                int ii = i;
                prodotto_esporta.addActionListener((e) -> {
                    String titoli[] = {"Prodotti", "Clienti", "Fornitori", "Utenti", "Vendite", "Acquisti", "Reparti", "Cronologia", "Cestino"};
                    JTable tabelle[] = {tabella_prodotti};
    
                    new CLASSE_ALTRO().esporta_(
                            titoli[ii],
                            tabelle[ii]);
                });
                Esporta.add(prodotto_esporta);
            }
            JMenu_file.add(Esporta);
Devi accedere o registrarti per scrivere nel forum
2 risposte