Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: athlit en 13 Noviembre 2009, 10:29 AM

Título: Consulta recoger vector
Publicado por: athlit en 13 Noviembre 2009, 10:29 AM
Hola a todos,
me estoy metiendo en java desde hace muy poquito y tengo una duda/problema al que no encuentro salida. Si alguien me puede ayudar se lo agradecería.
Allá va mi pregunta:
¿Es posible recoger el valor de un vector que está en un método, desde otro metodo de la misma clase?
Mi ejemplo:

Citar
public void Metodo()
{

    Vector x = new Vector();
    for (int i=0;i<11;i++)
{

    Integer a = new Integer(i);
    x.addElement(a);

}
}

Mi problemática es que desde otro método de la misma clase, no consigo acceder. ¿Se puede?

Muchas gracias a todos.

Un saludo.
Título: Re: Consulta recoger vector
Publicado por: Leyer en 13 Noviembre 2009, 15:11 PM
bueno una solucion es que tu metodo retorne el vector y el otro metodo aceda a el mismo.

Código (java) [Seleccionar]
public class test {
public static void main(String[] args){
System.out.println(get(1));
}
public static Integer get(int index){
return secret().get(index);
}
public static Vector<Integer> secret(){
Vector<Integer> x = new Vector<Integer>();
    for (int i=0;i<11;i++){
    Integer a = new Integer(i);
    x.addElement(a);
    }
    return x;
  }

}

Saludos..
Título: Re: Consulta recoger vector
Publicado por: Debci en 13 Noviembre 2009, 15:29 PM
si, llamando al metodo.dato

Saludos
Título: Re: Consulta recoger vector
Publicado por: athlit en 13 Noviembre 2009, 16:54 PM
Hola L-EYER,
en primer lugar gracias por contestar.

He probado lo que dices, pero al crear el metodo que retorne el vector, no me lo acepta ya que al metodo le tengo que poner el tipo de retorno (int, string, etc...) y se me queja del tipo.

Muchas gracias por todo.
Un saludo
Título: Re: Consulta recoger vector
Publicado por: athlit en 13 Noviembre 2009, 16:55 PM
Hola D3Bc1,
gracias por contestar tambien.

Probé tambien de llamarlo metodo.dato (dentro del metodo Metodo.x.ElementAt(i) por ejemplo), pero no me lo coge. Y si creo un objeto, lo puedo crear sobre Metodo pero no recoger el valor de x.
Te refieres a eso?

Muchas gracias por todo.
Un saludo
Título: Re: Consulta recoger vector
Publicado por: Debci en 13 Noviembre 2009, 19:48 PM
Cita de: athlit en 13 Noviembre 2009, 16:55 PM
Hola D3Bc1,
gracias por contestar tambien.

Probé tambien de llamarlo metodo.dato (dentro del metodo Metodo.x.ElementAt(i) por ejemplo), pero no me lo coge. Y si creo un objeto, lo puedo crear sobre Metodo pero no recoger el valor de x.
Te refieres a eso?

Muchas gracias por todo.
Un saludo
Huyyy si tienes decalarada la variable en una clase, pon Clase.dato si esta en un método pon Clase.Método.dato

Saludos
Título: Re: Consulta recoger vector
Publicado por: Leyer en 13 Noviembre 2009, 22:44 PM
Cita de: athlit en 13 Noviembre 2009, 16:54 PM
Hola L-EYER,
en primer lugar gracias por contestar.

He probado lo que dices, pero al crear el metodo que retorne el vector, no me lo acepta ya que al metodo le tengo que poner el tipo de retorno (int, string, etc...) y se me queja del tipo.

Muchas gracias por todo.
Un saludo


error? mmm solo tienes que hacer que el Metodo()  retorne el Vector luego haces desde otro metodo-->Metodo().get(index); eso es todo. :-\

Saludos y suerte.
Título: Re: Consulta recoger vector
Publicado por: athlit en 16 Noviembre 2009, 10:42 AM
Hola,
al final lo he conseguido. Mi inexperiencia me ha jugado una mala pasada....

Os detallo lo que hice:
Desde un metodo, creo y relleno el vector:

public static Vector Metodo()
{
    Vector x = new Vector();
    for (int i=0;i<11;i++)
{
    Integer a = new Integer(i);
    x.addElement(a);
   
    //suma += ((Integer)x.elementAt(i)).intValue();
}
    return x;
}


Desde otro metodo diferente, recogerlo. (Luego me ha venido a la cabeza el "y todavía más" y he hecho un casting a integer para poder sumarlos.

public static void Recoger()
{
for (int i = 0;i<11;i++)
{
    suma += ((Integer)Metodo().elementAt(i)).intValue();
}
System.out.println(suma);
}


Desde el main, primero ejecuto uno y luego el otro.

Muchas gracias a ambos por vuestra ayuda y tiempo.

Un saludo!