Salve ragazzi,
Ho un problema che non riesco a risolvere, io dovrei inserire una nuova voce nella rubrica costituita da un ArrayList chiamato menu. La nuova voce è costituita da un nome e un numero di cellulare. Il problema vi è quando vado a creare questa nuova voce con i dati inseriti dall' utente. Scusate ma non so proprio come spiegaverlo meglio.
Programma principale:
import java.util.*;
public class Rubrica{
static Scanner scan = new Scanner(System.in);
public static void main(String[]args){
int posizione=0;
//creazione ArrayList con la classe involucro VociRubrica
ArrayList <String> menu = new ArrayList <String>();
//creazione menu
System.out.println("1: Aggiungi nuova voce in rubrica");
System.out.println("2: Ricerca per nome");
System.out.println("3: Stampa rubrica completa");
System.out.println("0: Esci dal programma");
//scelta dell'opzione
for(int i=0; i>=0; i++){
System.out.println("Scegli l'opzione desiderata: ");
int richiesta = scan.nextInt();
//gestione dell'errore in caso di inserimento sbagliato
if(richiesta < 0 || richiesta > 3){
System.out.println("Errore di inserimento, scegliere un numero compreso tra 0 e 3: ");
richiesta = scan.nextInt();
}
switch(richiesta){
//inserimento di una nuova voce in rubrica
case 1:
//controllo che non ci sia un' altra voce uguale a quella inserita
do{
System.out.println("Inserire il nome: ");
String nome = scan.next();
System.out.println("Inserire numero di cellulare: ");
String numCell = scan.next();
VociRubrica nuovaVoce = new VociRubrica(nome, numCell);
posizione = menu.indexOf(nome);
if(posizione!=-1){
System.out.println("La voce inserita e' gia esistente, inserirne un altra: ");
}
}while(posizione==-1);
menu.add(new VociRubrica(nuovaVoce));
System.out.println("La voce e' stata inserita correttamente nella rubrica");
break;
Classe VociRubrica:
import java.util.*;
public class VociRubrica{
private String nome, numCell;
public VociRubrica(String nome, String numCell){
this.nome = nome;
this.numCell = numCell;
}
public String getNome(){
return nome;
}
public String getNumCell(){
return numCell;
}
public void setNome(String nome){
this.nome = nome;
}
public void setNumCell(String numCell){
this.numCell = numCell;
}
}
Il problema è il seguente:
Rubrica.java:47: error: constructor VociRubrica in class VociRubrica cannot be applied to given types;
VociRubrica nuovaVoce = new VociRubrica(nome, numCell);
^
required: no arguments
found: String,String
reason: actual and formal argument lists differ in length
Rubrica.java:54: error: cannot find symbol
menu.add(new VociRubrica(nuovaVoce));
^
symbol: variable nuovaVoce
location: class Rubrica
Scusate se commetterò errori ma sono nuovo di questo Forum.
Grazie in anticipo
Ho un problema che non riesco a risolvere, io dovrei inserire una nuova voce nella rubrica costituita da un ArrayList chiamato menu. La nuova voce è costituita da un nome e un numero di cellulare. Il problema vi è quando vado a creare questa nuova voce con i dati inseriti dall' utente. Scusate ma non so proprio come spiegaverlo meglio.
Programma principale:
import java.util.*;
public class Rubrica{
static Scanner scan = new Scanner(System.in);
public static void main(String[]args){
int posizione=0;
//creazione ArrayList con la classe involucro VociRubrica
ArrayList <String> menu = new ArrayList <String>();
//creazione menu
System.out.println("1: Aggiungi nuova voce in rubrica");
System.out.println("2: Ricerca per nome");
System.out.println("3: Stampa rubrica completa");
System.out.println("0: Esci dal programma");
//scelta dell'opzione
for(int i=0; i>=0; i++){
System.out.println("Scegli l'opzione desiderata: ");
int richiesta = scan.nextInt();
//gestione dell'errore in caso di inserimento sbagliato
if(richiesta < 0 || richiesta > 3){
System.out.println("Errore di inserimento, scegliere un numero compreso tra 0 e 3: ");
richiesta = scan.nextInt();
}
switch(richiesta){
//inserimento di una nuova voce in rubrica
case 1:
//controllo che non ci sia un' altra voce uguale a quella inserita
do{
System.out.println("Inserire il nome: ");
String nome = scan.next();
System.out.println("Inserire numero di cellulare: ");
String numCell = scan.next();
VociRubrica nuovaVoce = new VociRubrica(nome, numCell);
posizione = menu.indexOf(nome);
if(posizione!=-1){
System.out.println("La voce inserita e' gia esistente, inserirne un altra: ");
}
}while(posizione==-1);
menu.add(new VociRubrica(nuovaVoce));
System.out.println("La voce e' stata inserita correttamente nella rubrica");
break;
Classe VociRubrica:
import java.util.*;
public class VociRubrica{
private String nome, numCell;
public VociRubrica(String nome, String numCell){
this.nome = nome;
this.numCell = numCell;
}
public String getNome(){
return nome;
}
public String getNumCell(){
return numCell;
}
public void setNome(String nome){
this.nome = nome;
}
public void setNumCell(String numCell){
this.numCell = numCell;
}
}
Il problema è il seguente:
Rubrica.java:47: error: constructor VociRubrica in class VociRubrica cannot be applied to given types;
VociRubrica nuovaVoce = new VociRubrica(nome, numCell);
^
required: no arguments
found: String,String
reason: actual and formal argument lists differ in length
Rubrica.java:54: error: cannot find symbol
menu.add(new VociRubrica(nuovaVoce));
^
symbol: variable nuovaVoce
location: class Rubrica
Scusate se commetterò errori ma sono nuovo di questo Forum.
Grazie in anticipo