problemi con arrayList in java
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
problemi con arrayList in java
Ciao a tutti. Ho un problema con un'arrayList. Ho una classe principale con all'interno diverse classi inner.Devo richiamare un array list della classe principale in alcune classi inner. Come faccio? Non dovrebbe gia' essere visibile a tutte le classi inner? Grazie per l'eventuale risposta.
Re: problemi con arrayList in java
Codice: Seleziona tutto
NomeClassePrincipale.this.nomeArraylist
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
Re: problemi con arrayList in java
Niente da fare. Mi lancia un'eccezione NullPointer. Per comodità posto il codice
Codice: Seleziona tutto
import javax.swing.*;
import java.awt.*;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.*;
import java.lang.*;
public class RubricadaConsolle1 {
private ArrayList contatti;
public RubricadaConsolle1(){
//RubricadaConsolle1 x=new RubricadaConsolle1();
//RubricadaConsolle1.Menu menu=x.new Menu();
//String nome=a.getNome();
//String cognome=a.getCognome();
//String telefono=a.getTelefono();
//String email=a.getEmail();
//contatti.add(new Contatto(nome,cognome,telefono,email));
}
/*try
{
Runtime.getRuntime().exec("notepad Rubrica.txt");
}catch (Exception f) {
System.out.println ("Errore exec:" + f);
}*/
public static void main(String[] args){
RubricadaConsolle1 x=new RubricadaConsolle1();
RubricadaConsolle1.Menu menu1=x.new Menu();
for (; ;){
Scanner input=new Scanner(System.in);
String s=input.nextLine();
//System.out.println(s);
switch(s){
case "1":
RubricadaConsolle1 z=new RubricadaConsolle1();
RubricadaConsolle1.InserisciContatto a= z.new InserisciContatto();
a.inserisci();
break;
case "4":
RubricadaConsolle1 w=new RubricadaConsolle1();
RubricadaConsolle1.LeggidaFile leggi=w.new LeggidaFile();
leggi.leggiFile();
break;
case "6":
//Scanner binput=new Scanner(System.in);
//String s4=binput.nextLine();
RubricadaConsolle1 v=new RubricadaConsolle1();
RubricadaConsolle1.Salva salva=v.new Salva();
salva.salvacontatto();
//RubricadaConsolle1 x1=new RubricadaConsolle1();
//RubricadaConsolle1.Menu menu1=x1.new Menu();
break;
}
}
}
public class Contatto{
private String nome,cognome,email,telefono;
public Contatto(String nome,String cognome,String telefono,String email)
{
this.nome = nome;
this.cognome = cognome;
this.telefono = telefono;
this.email = email;
}
// Metodi per prendere le informazioni di ogni contatto
public String getCognome(){
return cognome;
}
public String getEmail(){
return email;
}
public String getNome(){
return nome;
}
public String getTelefono(){
return telefono;
}
// Metodi per modificare le informazioni di ogni contatto
public void setCognome(String nuovoCognome){
cognome = nuovoCognome;
}
public void setEmail(String nuovaEmail){
email = nuovaEmail;
}
public void setNome(String nuovoNome){
nome = nuovoNome;
}
public void setTelefono(String nuovoTelefono){
telefono = nuovoTelefono;
}
}
public class Menu {
public Menu(){
System.out.println("Inserisci la tua scelta: ");
System.out.println(" 1) Inserisci un contatto ");
System.out.println(" 2)Modifica Contatto ");
System.out.println(" 3)Visualizza Contatto");
System.out.println(" 4)Leggi contatti da File");
System.out.println(" 5)Rimuovi contatto");
System.out.println(" 6)Salva contatti su file");
System.out.println(" 7)Esci");
//JButton cerca=new JButton("Cerca");
//JTextField cerca1=new JTextField();
}
}
public class InserisciContatto {
public InserisciContatto(){
}
public void inserisci(){
contatti=new ArrayList();
System.out.println("Inserisci nome ");
Scanner ainput=new Scanner(System.in);
String s=ainput.nextLine();
//System.out.println(s);
System.out.println("Inserisci cognome");
String s1=ainput.nextLine();
System.out.println("Inserisci telefono");
String s2=ainput.nextLine();
System.out.println("Inserisci Email");
String s3=ainput.nextLine();
contatti.add(s);
contatti.add(s1);
contatti.add(s2);
contatti.add(s3);
RubricadaConsolle1 x=new RubricadaConsolle1();
RubricadaConsolle1.Menu menu1=x.new Menu();
}
/*public void actionPerformed(ActionEvent e){
if (e.getSource()==salva){
inserisci();
}
}*/
}
public class FinestraModificaContatto extends JFrame {
public FinestraModificaContatto(){
}
}
public class FinestraRimuoviContatto extends JFrame {
public FinestraRimuoviContatto(){
}
}
public class Salva {
public Salva(){
}
public void salvacontatto(){
//Scanner binput=new Scanner(System.in);
//String g=binput.nextLine();
RubricadaConsolle1.this.contatti; //QUI MI DA ERRORE PERCHE' NON RICONOSCE CONTATTI CHE E' L'ARRAYLIST
try
{
Object o;
for(int i=0;i<contatti.size();i++){
System.out.println(contatti.get(i));
}
FileWriter writer = new FileWriter("Rubrica.txt", true);
PrintWriter out=new PrintWriter(writer);
out.println("Contatto");
//for (int i=0; i< contatto1.size();i++){
//o=contatto1.get(i);
//out.println(o.toString());
writer.flush();
writer.close();
//System.out.println(o.toString());
System.out.println("Contatto salvato");
//}
}
catch(IOException e) {
e.printStackTrace();
}
}
}
public class LeggidaFile{
public LeggidaFile(){
}
public void leggiFile(){
//FileReader f=new FileReader();
try
{
Runtime.getRuntime().exec("notepad Rubrica.txt");
}catch (Exception f) {
System.out.println ("Errore exec:" + f);
}
}
}
}
Re: problemi con arrayList in java
Senza andare sul codice...hai istanziato la variabile?
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
Re: problemi con arrayList in java
ArrayList contatto=RubricadaConsolle.this.contatti. Cosi me la riconosce ma mi da NullPointerException quando vado a estrarre i dati dalla lista
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
Re: problemi con arrayList in java
Mi spiego meglio:
contatti.add(new Contatto(nome,cognome,telefono,email); //AGGIUNGO VALORI ALLA LISTA CHE HO DICHIARATO COME ARRAYLIST<CONTATTO> contatti.
Poi nella classe InserisciContatto
contatti=new ArrayList();
Infine per vedere gli elementi della lista
for (int i=0;i<contatti.size();i++){
System.out.println(contatti.get(i));
}
E' qui che nasce il problema.
contatti.add(new Contatto(nome,cognome,telefono,email); //AGGIUNGO VALORI ALLA LISTA CHE HO DICHIARATO COME ARRAYLIST<CONTATTO> contatti.
Poi nella classe InserisciContatto
contatti=new ArrayList();
Infine per vedere gli elementi della lista
for (int i=0;i<contatti.size();i++){
System.out.println(contatti.get(i));
}
E' qui che nasce il problema.
Re: problemi con arrayList in java
eh si, manca contatti.add($roba_da_aggiungere)
ps: spesso per capire che diavolo sta succedendo il migliore amico che puoi avere è il debug. , se proprio non vuoi debuggare almeno qualche tattico System.out.println. Ma il debug è meglio. A farlo bene sarebbe ancora meglio usare JUnit ma qui la faccenda si allungherebbe.
ps: spesso per capire che diavolo sta succedendo il migliore amico che puoi avere è il debug. , se proprio non vuoi debuggare almeno qualche tattico System.out.println. Ma il debug è meglio. A farlo bene sarebbe ancora meglio usare JUnit ma qui la faccenda si allungherebbe.
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
Re: problemi con arrayList in java
Adesso sto provando cosi:
ArrayList contact=RubricadaConsolle1.this.contatti;
for(int i=0;i<contact.size();i++){
System.out.println(contact.get(i));
//out.println(contact.get(i));
}
Ma non mi restituisce nulla. Non riesco a capirne il motivo se la lista è stata istanziata.Manca qualcosa? E' come se la lista fosse vuota.Booh!!!
ArrayList contact=RubricadaConsolle1.this.contatti;
for(int i=0;i<contact.size();i++){
System.out.println(contact.get(i));
//out.println(contact.get(i));
}
Ma non mi restituisce nulla. Non riesco a capirne il motivo se la lista è stata istanziata.Manca qualcosa? E' come se la lista fosse vuota.Booh!!!
Re: problemi con arrayList in java
Se non ci metti roba nella lista (vedi sopra)
-
- Prode Principiante
- Messaggi: 11
- Iscrizione: sabato 4 giugno 2016, 16:30
- Distribuzione: 16.04
- Sesso: Maschile
Re: problemi con arrayList in java
Allora vediamo di ricapitolare. Ho riscritto il codice. Ho un metodo con un arraylist che popolo e riesco a estrarre i dati. Vorrei riutilizzare la stessa arraylist in un altro metodo con gli stessi dati. Questo non mi riesce perchè vorrei estrarre i dati che ho inserito nell'altro metodo. Non riesco a scrivere il codice che mi permetta di utilizzare la stessa arraylist in due metodi differenti.
Dove sbaglio? I dati li inserisco in delle string direttamente da tastiera. Sto cercando di fare una rubrica. Quindi i campi sono 4, nome cognome,tel,email.
Dove sbaglio? I dati li inserisco in delle string direttamente da tastiera. Sto cercando di fare una rubrica. Quindi i campi sono 4, nome cognome,tel,email.
Re: problemi con arrayList in java
Codice: Seleziona tutto
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class RubricadaConsolle1 {
private ArrayList<Contatto> contatti = new ArrayList<Contatto>();
public RubricadaConsolle1() {
}
public void inserisci() {
System.out.println("Inserisci nome ");
Scanner ainput = new Scanner(System.in);
String s = ainput.nextLine();
System.out.println("Inserisci cognome");
String s1 = ainput.nextLine();
System.out.println("Inserisci telefono");
String s2 = ainput.nextLine();
System.out.println("Inserisci Email");
String s3 = ainput.nextLine();
contatti.add(new Contatto(s, s1, s2, s3));
ainput.close();
}
public void salvacontatto() {
try {
for (Contatto contatto : contatti) {
System.out.println(contatto.toString());
}
FileWriter writer = new FileWriter("Rubrica.txt", true);
PrintWriter out = new PrintWriter(writer);
out.println("Contatto");
writer.flush();
writer.close();
System.out.println("Contatto salvato");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
boolean isFinished = false;
while (!isFinished) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
switch (s) {
case "1":
break;
case "4":
break;
case "6":
break;
case "9":
isFinished = true;
input.close();
}
}
}
class Contatto {
private String nome, cognome, email, telefono;
public Contatto(String nome, String cognome, String telefono,
String email) {
this.nome = nome;
this.cognome = cognome;
this.telefono = telefono;
this.email = email;
}
// Metodi per prendere le informazioni di ogni contatto
public String getCognome() {
return cognome;
}
public String getEmail() {
return email;
}
public String getNome() {
return nome;
}
public String getTelefono() {
return telefono;
}
// Metodi per modificare le informazioni di ogni contatto
public void setCognome(String nuovoCognome) {
cognome = nuovoCognome;
}
public void setEmail(String nuovaEmail) {
email = nuovaEmail;
}
public void setNome(String nuovoNome) {
nome = nuovoNome;
}
public void setTelefono(String nuovoTelefono) {
telefono = nuovoTelefono;
}
@Override
public String toString() {
return "Contatto: " + nome + ", " + cognome;
}
}
}
Codice: Seleziona tutto
public class Salva {
public Salva(){
}
public void salvacontatto(){
//Scanner binput=new Scanner(System.in);
//String g=binput.nextLine();
RubricadaConsolle1.this.contatti; //QUI MI DA ERRORE PERCHE' NON RICONOSCE CONTATTI CHE E' L'ARRAYLIS
// contatti è ancora NULL! E poi è meglio usare getters e setters!
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti