Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Crear una variable que se autoincremente y se renueve por año.

Hola, necesito ayuda en un proyecto web.
Tengo una clase Nota y Memo con las siguientes variables entre otras:
Nota
---------------------
- int nroDeNotas;
- String descripcion;

Memo
---------------------
- int nroDeMemo;
- String sector;

Nota y Memo heredan de Documento, que tiene las siguientes variables:

Documento
---------------
- int id;
- Date date;

Lo que necesito hacer es que nroDeNota y NroDeMemo se incrementen automáticamente cada vez que creo uno, ambos son independiente del id de Documento. Ademas, nroDeNota y nroDeMemo deben reiniciarse en cero cuando comienza un nuevo año.

Me podrían dar unas ideas por favor.

--------------------------------------------------------------------------------------------------
Utilizando Framework Apache isis https://isis.apache.org/documentation.html

agosto 11, 2014 | Registered Commentercipoleto

public class NewMain {

public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
NewClass newClass = new NewClass();
}
System.out.println("contador= " + NewClass.getContador());
}
}


public class NewClass {

private static int contador;

/**
* @return the contador
*/
public static int getContador() {
return contador;
}

public NewClass() {
contador++;
}
}

agosto 11, 2014 | Registered Commenterchoces

Para determinar la fecha, usa la clase Calendar

http://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html

agosto 11, 2014 | Registered Commenterchoces

Buenas

Dado que se trata de una aplicacion web en la que existen multiples classloaders (y teniendo en cuenta que el valor se resetea cada vez que reiniciamos) yo no me fiaria de una variable static.
http://yiyujia.blogspot.fr/2011/10/java-class-loader-and-static-variable.html

Yo creo que lo mas sencillo y seguro seria configurar dicha entidad a nivel de la base de datos en la que se va a persistir. Casi todos los productos de bases de datos admiten campos "auto_increment". Para resetear cada anio, bastaria con un simple trigger.


Un saludo

agosto 12, 2014 | Unregistered CommenterUnoPorAhi

Yo nunca uso contadores con variables estáticas, y que se autoincrementan con cada creación de una instancia de clase. Me parece un diseño más que dudoso, por no decir sencillamente erróneo; pero es lo que ha preguntado, y como una cuestión de JavaSE.

agosto 12, 2014 | Registered Commenterchoces

Muchas gracias por la ayuda, cuando lo termine de implementar lo subo.

agosto 12, 2014 | Unregistered Commentercipoleto