![]() |
Ayuda! Como declarar una instancia de este constructor Hola! Tengo esta clase : public class Secuencia { private static final int Caracteres=30; private String texto[]; public Secuencia(String pTexto[]) { for (int i=0;i<MAXCAR;i++) { this.texto[i]=pTexto[i]; } this.texto=pTexto; } public String[] obtTexto() { return (texto); } } La variable texto tiene que tener una longitud maxima de 30 caracteres, sea cual sea la longitud de caracteres de la variable Ahora en el programa principal quiero instanciar a la clase Secuencia: Hago lo siguiente: public static void main(String[] args) { String datos[]=new String[1]; String a="Esto es una prueba"; datos[0]=a; Secuencia s= new Secuencia(datos); System.out.println(s.obtTexto()); // Aqui quiero sacar el mensaje "Esto es una prueba" } Pero en la linea "Secuencia s= new Secuencia(datos); " me da un Null Pointer Exception, cuyo origen tiene en la instruccion " this.texto[i]=pTexto[i];" y no se como resolverlo. ¿Alguien me puede ayudar? Gracias y un saludo |
Re: Ayuda! Como declarar una instancia de este constructor En la parte del constructor te falta instanciar el arreglo: public Secuencia(String pTexto[]) { this.texto= new String[Caracteres]; for (int i=0;i<MAXCAR;i++) { this.texto[i]=pTexto[i]; } this.texto=pTexto; } |
Re: Ayuda! Como declarar una instancia de este constructor Cita:
Hola! Gracias por responder. Sigue sin salirme bien si pongo this.texto= new String[Caracteres]; en la linea this.texto[i]=pTexto[i]; me da un error de : java.lang.ArrayIndexOutOfBoundsException: 1 ¿sabe alguien como solucionar esto? Gracias y un saludo |
Re: Ayuda! Como declarar una instancia de este constructor Lo he arreglado un poco, pero sigo teniendo un problemilla: Tengo esta clase : public class Secuencia { private static final int Caracteres=30; private String texto[]=new String [Caracteres]; public Secuencia(String pTexto[]) { for (int i=0;i<MAXCAR;i++) { this.texto[i]=pTexto[i]; } this.texto=pTexto; } public String[] obtTexto() { return (texto); } } En el principal public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { String datos[]=new String[1]; String a="Esto es una prueba"; datos[0]=a; Secuencia s= new Secuencia(datos); System.out.println(s.obtTexto()); } Pero cuando lo ejecuto en vez de la salirme el texto "Esto es una prueba" me sale la direccion de memoria, es decir: [Ljava.lang.String;@19821f y yo quiero que me salga el texto ¿Alguien me puede ayudar? Gracias y un saludo } |
Re: Ayuda! Como declarar una instancia de este constructor La función obtTexto está retornando un array (String[]) y no un string, de ahí que no te devuelva el texto. Tampoco veo la variable MAXCAR definida en la clase Secuencia, aunque supongo que si lo tendrás definidio y no lo has puesto. |
Re: Ayuda! Como declarar una instancia de este constructor Cita:
|
| La zona horaria es GMT -6. Ahora son las 07:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.