From a962f97656114b6590e9a14ac5ad244ec7d9fb48 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Fri, 17 Oct 2025 21:08:33 +0200 Subject: [PATCH] =?UTF-8?q?BUGFIX:=20Inserimento=20di=20uno=20o=20pi=C3=B9?= =?UTF-8?q?=20elementi=20extra=20dopo=20la=20creazione=20dell'array?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ereditarieta/ereditarieta.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ereditarieta/ereditarieta.java b/src/ereditarieta/ereditarieta.java index baa0852..ecf71ba 100644 --- a/src/ereditarieta/ereditarieta.java +++ b/src/ereditarieta/ereditarieta.java @@ -149,7 +149,7 @@ public class ereditarieta { static Persona[] InserisciPersone(Persona[] p_persone) { Persona ritorno[] = null; int numeroPersone = 0; - boolean error; + boolean error, arrayNuovo; String nome; String cognome; String sesso; @@ -183,8 +183,10 @@ public class ereditarieta { if (p_persone == null) { ritorno = new Persona[numeroPersone]; + arrayNuovo = true; } else { ritorno = Arrays.copyOf(p_persone, p_persone.length + numeroPersone, p_persone.getClass()); + arrayNuovo = false; } for (int i = 0; i < numeroPersone; i++) { @@ -213,7 +215,7 @@ public class ereditarieta { try { switch (professione) { case "nessuna": - ritorno[i] = new Persona(nome, cognome, sesso, età); + ritorno[arrayNuovo ? i : p_persone.length + i] = new Persona(nome, cognome, sesso, età); error = false; System.out.println("Persona inserita con successo."); break; @@ -223,7 +225,7 @@ public class ereditarieta { System.out.print("Inserire l'indirizzo di studio: "); indirizzoDiStudio = sc.nextLine(); - ritorno[i] = new Studente(nome, cognome, sesso, età, classe, indirizzoDiStudio); + ritorno[arrayNuovo ? i : p_persone.length + i] = new Studente(nome, cognome, sesso, età, classe, indirizzoDiStudio); error = false; System.out.println("Studente inserito con successo."); break; @@ -233,7 +235,7 @@ public class ereditarieta { System.out.print("Inserire il numero di maglia: "); numeroMaglia = sc.nextLine(); - ritorno[i] = new Calciatore(nome, cognome, sesso, età, squadra, numeroMaglia); + ritorno[arrayNuovo ? i : p_persone.length + i] = new Calciatore(nome, cognome, sesso, età, squadra, numeroMaglia); error = false; System.out.println("Calciatore inserito con successo."); break; @@ -243,7 +245,7 @@ public class ereditarieta { System.out.print("Inserire l'handle: "); handle = sc.nextLine(); - ritorno[i] = new Influencer(nome, cognome, sesso, età, numeroFollower, handle); + ritorno[arrayNuovo ? i : p_persone.length + i] = new Influencer(nome, cognome, sesso, età, numeroFollower, handle); error = false; System.out.println("Influencer inserito con successo."); break;