Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
Variables estáticas que se generan automáticamente y se deben pasar en el constructor para la creación de instancias de objetos

Hola, soy nuevo en Java y tengo una tarea en la que durante días no pude averiguar cómo tener un atributo único para cada objeto que se genera aleatoriamente. En mi reserva de clase, quiero que kratisid sea único y generado aleatoriamente para cada object pero si hago eso en el constructor en el método main(), necesito pasar un valor aritmético y no el generado automáticamente. Aquí está el código:

 import java.utils.*; import static org.apache.commons.lang3.RandomStringUtils.*; public class reservation { String onoma; int afixi; int mdiam; int atoma; Domatio domat;//domat prosorinos deiktis sto object Domatio tha balo d meta Domatio d; Random rand = new Random();//this.kratisid=kratisid; kai stin main bazo random //random kratisi id static int kratisid = rand.nextInt(500) + 100;//It produces a random kratisid between 100 and 500 String onoma = RandomStringUtils.randomAlphabetic(10); //it produces a random alphabetic string for the onoma variable public reservation(String onoma, int kratisid, int afixi, int mdiam, int atoma, Domatio d)//boolean s) { //info for customer of a hotel reservation,d is reference to Domatio objects an another class d = null; this.onoma = onoma; //System.out.println("Enter your name please"); //Scanner scanner1= new Scanner(System.in); //onoma=scanner1.nextLine() this.afixi = afixi; //System.out.println("Enter your day of arrival please ,it must be from 1 to 30 max"); //Scanner scanner2=new Scanner(System.in); // afixi=scanner2.nextInt(); // if(afixi<1 && afixi>30){ // afixi=0; // System.out.println("Please re-enter your arrival within the month boundaries"); //} this.mdiam = mdiam; //System.out.println("Please enter the number of days you will be staying"); // Scanner scanner3=new Scanner(System.in); // mdiam=scanner3.nextInt(); this.atoma = atoma;// }

Ahora, en el método principal, cuando creo un objeto, por ejemplo, necesito pasar el kratisid estático como argumento, pero ¿cómo hago para que el objeto tenga el kratisid aleatorio estático sin necesidad de pasarlo en la creación del objeto en main? En caso de que no lo haya dicho, trato de crear un kratisid aleatorio único para cada objeto y un onoma que también es aleatorio, pero si el usuario lo desea, puede ingresar el suyo.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si desea crear objetos con diferentes campos inicializados aleatoriamente, entonces debería considerar algo como esto:

 public class Reservation { private static final Random r = new Random(0); private int kratisid = r.nextInt(500) + 100; // ... }

Tenga en cuenta que:

  • Los números aleatorios y los identificadores únicos son conceptos relacionados, pero ser aleatorio no es lo mismo que ser único.
  • Esta solución adolece de una condición de carrera crítica, ya que los objetos pueden interferir en r

Como tal, considere esta solución:

 public class Reservation { private static final Random r = new Random(0); private static Semaphore semaphore = new Semaphore(1); private static int getRandomInt() { final int res; semaphore.acquireUninterruptibly(); res = r.nextInt(500) + 100; semaphore.release(); return res; } private int kratisid = getRandomInt(); // ... }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda