Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: ch1n0 en Junio 14, 2011, 04:35:09 PM

Título: Vector en RMI
Publicado por: ch1n0 en Junio 14, 2011, 04:35:09 PM
hola a todos. estoy asiendo un programita en java con RMI. lo que hago es enviar un mensaje a traves del cliente, el cual le llega al objetoRemoto y este lo tiene q guardar en un vector, la gracias es q debo ingresar mas mensajes e ir guardandolos en el vector, pero en el objetoRemoto siempre me guarda el mensaje en la primer posicion.

ahi alguna forma de indicarle de que lo guarde en la sgt. psocicion,

codigo del objetoRemoto

Código (java) [Seleccionar]

import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;

public class ObjetoRemoto extends UnicastRemoteObject implements InterfaceRemota {

public ObjetoRemoto() throws RemoteException {
super();
}

public int inserta(String usuario, String post) {

String mensaje = new String();
String users[] = new String[10];
Vector vector = new Vector(10);
int a = 0;
int i = 0;

try {
users[i] = usuario;
vector.insertElementAt(post, i);
//System.out.println(vector.elementAt(1));
mensaje = vector.toString();;
a = vector.size();
i++;
}catch(Exception e) {
e.printStackTrace();
}
return i;
}
}
Título: Re:Vector en RMI
Publicado por: S[e]C en Junio 22, 2011, 12:25:00 AM
lo que pasa es que siempre que el objetoRemoto  llama al método "insertar" re-inicializa la variable i en 0, por lo que inserta en esa posición, luego incrementa i, pero la próxima ves q se llame el método pasara lo mismo, se inicializa en 0, y se incrementa (inútil incremento xd) . No sé si se entendio, pero prueba algo como esto:

Código (java) [Seleccionar]
import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;

public class ObjetoRemoto extends UnicastRemoteObject implements InterfaceRemota {
private int posActual;
public ObjetoRemoto() throws RemoteException {
super();
                posActual = 0;
}

        public int getposActual(void){
            return this.posActual;
        }

        public void setposActual(int nueva){
            this.posActual = nueva;
        }

public int inserta(String usuario, String post) {

String mensaje = new String();
String users[] = new String[10];
Vector vector = new Vector(10);
int a = 0;

try {
users[i] = usuario;
vector.insertElementAt(post, getposActual());
//System.out.println(vector.elementAt(1));
mensaje = vector.toString();;
a = vector.size();
                setPosActual(getposActual()+1);
}catch(Exception e) {
e.printStackTrace();
}
return i;
}
}