Hola.
Tengo la siguiente duda de como puedo enviar los datos a un constructor mediante el siguiente formato con Scanner : '2.3,4,palabra'
// Constructor
public Producto(double precio, int cantidad, String articulo) {
this.precio = precio;
this.cantidad = cantidad;
this.articulo = articulo;
}
// Objeto
Scanner entrada=new Scanner(System.in);
Producto producto1 = new Producto();
¿Como puedo introducir la línea '2.3,4,palabra' en scanner y enviarla al constructor?
Por separado si sé hacerlo parámetro a parámetro pero no veo la forma de hacerlo en una línea sola con los datos separados por parámetros.
Gracias, Saludos.
No hay una forma de hacerlo así en 1 línea.
Realmente, no es necesario a la hora de hacer estos programas.
Ahora bien, tienes la opción de crear una función tipo "create<Producto>(entrada)", que lea la línea, acceda al constructor de la clase por reflection y trate de inferir los argumentos a partir de los constructores de la clase y de la línea leída.
Esto no es tan sencillo, así que mi recomendación es que lo evites. No es necesario complicar tanto un programa.
La única forma que se me ocurre (muy costosa), es recibir en el constructor un único parámetro String, luego trocear la cadena con el método split() con separador de campos ',' (coma), convertir las Strings al tipo apropiado y asignar cada valor de la posición del vector a tus variables de clase.
Pero es mejor que lo hagas de la forma convencional y sin complicaciones.