1
Aprender a programar desde cero / Clase ArrayList de Java. Concepto de clase genérica o parametrizada CU00665B
« en: 04 de Junio 2015, 16:03 »
Hola este es el código de mi ejercicio pero me da un error que no entiendo:
"constructor ListaDeCantantesFamosos in class ListaDeCantantesFamosos cannot be applied to given types; required.java.lang.String; found: no arguments; reason: actual and formal argument lists differ in length"
este es el de lista de cantantes
este es el de entrada de teclado que es uno que ya tenía
al compilar el main es donde presenta el mensaje mencionado anteriormente alguien puede ayudarme a ver mi error gracias!
"constructor ListaDeCantantesFamosos in class ListaDeCantantesFamosos cannot be applied to given types; required.java.lang.String; found: no arguments; reason: actual and formal argument lists differ in length"
este es el de lista de cantantes
Código: [Seleccionar]
import java.util.ArrayList;
import java.lang.String;
public class ListaCantantesFamosos
{
private String nombreDeLaLista;
private ArrayList <String > listadecantantesfamosos;
public ListaCantantesFamosos(String nombre)
{
nombreDeLaLista=nombre;
listadecantantesfamosos =new ArrayList <String >();
listadecantantesfamosos.add("Adele");listadecantantesfamosos.add("Aerosmith");
listadecantantesfamosos.add("Queen");
}
public void addCantantes (String valor_nombre){listadecantantesfamosos.add(valor_nombre);}
public String getCantantes (int posicion){
if (posicion >=0 && posicion <listadecantantesfamosos.size()){
return listadecantantesfamosos.get(posicion);}
else {return "No existe nombre para la posicion solicitada";}
}
public int getTamaño(){
return listadecantantesfamosos.size();}
public void removeCantanteFamoso(int posicion){
if (posicion>=0 && posicion < listadecantantesfamosos.size()){
listadecantantesfamosos.remove(posicion);}
else {}
}
}
este es el de entrada de teclado que es uno que ya tenía
Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado{
private String entradaTeclado; //variable de instancia campo de la clase
public EntradaDeTeclado(){
entradaTeclado="";
pedirEntrada();// esto es una llamada a un metodo interno. al crear un objeto ejecutamos el metodo
}
public void pedirEntrada(){ //metodo de la clase
Scanner entradaEscaner=new Scanner (System.in);
entradaTeclado=entradaEscaner.nextLine();
}
public String getEntrada(){return entradaTeclado;}
public String getPrimeraPalabra (){
//IMPORTANTE: EN JAVA LOS OBJETOS NO SE PUEDEN COMPARAR USANDO == POR ESO ESTO NO FUNCIONARÁ
if (entradaTeclado.substring (0,1).equals("j")){
System.out.println("hemos detectado una j");
}else {System.out.println ("Mira esto:" + entradaTeclado.substring(0,1) ); }
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado;}
public int getLongitud(){ //metodo de la clase
return entradaTeclado.length();
}}
al compilar el main es donde presenta el mensaje mencionado anteriormente alguien puede ayudarme a ver mi error gracias!
Código: [Seleccionar]
import java.lang.String;
public class TestListaDeCantantesFamosos
{
public static void main (String [] args){
System.out.println("Ingrese dos cantantes mas");
System.out.println("Ingrese el primer cantante");
EntradaDeTeclado entrada1 = new EntradaDeTeclado();
System.out.println("Ingrese el segundo cantante");
EntradaDeTeclado entrada2 = new EntradaDeTeclado();
System.out.println("Gracias");
ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
lista1.addCantantes(entrada1.getEntrada()); lista1.addCantantes(entrada2.getEntrada());
for (int i=0;(i<=lista1.getTamaño);i++)
{lista1.getCantantes(i);
}
}
}