Ay dios mio, me van a matar.
Esto ya lo dije en un
tema,
las variables GLOBALES no existe en Java. Eso es una variable de
CLASE.
Dejando eso claro, intentare responder tu pregunta.
Como dice
@El Benjo Lo que pasa es que empiezas desde el indice 0 siempre, por lo cual siempre re-definirás los primeros datos ingresados.
Por otro lado siempre que tengas un arreglo en el cual necesites modificar su longitud es mejor trabajar con listas. (En la actualidad tu programa explotaría si yo hago paso como parámetro un array de 51 elementos).
Si te rehúsas a utilizar listas o cualquier cosa por alguna razón, podrías complicarte la vida haciendo algo como esto:
public static byte[] buffer;
public void send(byte[] mensaje) {
if (Nucleo.buffer == null) {
Nucleo.buffer = mensaje;
} else {
byte[] newBuffer = new byte[Nucleo.buffer.length+mensaje.length];
for (int i = 0; i < newBuffer.length; i++) {
if (i < Nucleo.buffer.length) {
newBuffer[i] = Nucleo.buffer[i];
} else {
newBuffer[i] = mensaje[i-Nucleo.buffer.length];
}
}
Nucleo.buffer = newBuffer;
}
}
Ahora te doy mis recomendaciones que doy a todos. (Lamento ser un pesado)
1. No utilices variables de clase amenos que sea totalmente necesario. (Existen casos en que lo es, por ejemplo en el patrón de diseño Singleton) - Para saber mas de patrones de diseño haz clic
aquí.
2. No hagas clases, métodos o variables friendly (encapsulamiento default), es una mala practica, la encapsulación no debe depender de la arquitectura o distribución de tu proyecto.
public class Nucleo {
public static byte[] buffer;
}
3. Cuando abras llaves "{" ponlo en la misma linea que la sentencia separados por un espacio del paréntesis (). Por ejemplo:
public void myMethod() {
}
4. En sentencias if, for, while.... (sentencias, no métodos, que reciban parámetros) separa los paréntesis de la sentencia.
if (condition) {
}
Esto que te mencione de las 3 y 4 no harán que tu programa sea mejor, pero si hará que tu código lo sea. Es como la ortografía, se entiende, pero los ojos sangran.
Para saber mas de las buenas practicas y convenciones de Java haz clic
aquí(Podría darte un par de consejos mas como que cuides mas tu indentado, pero ya es suficiente)PD: Por favor, dejen de referirse a las variables "estaticas" como variables globales, los novatos se confunden.PD2: Felicitaciones
@m@o_614 tomaste mi consejo de volver a lo básico, sigue así y tu lógica mejorara muchísimo.