Løst: velg tilfeldig enum

Som en erfaren Java-utvikler og en kjenner av mote, får vi ofte i oppgave å lage unike løsninger på komplekse problemer. Et slikt dilemma er det tilfeldige utvalget fra en oppregning (Enum) i Java. Du har kanskje allerede gjettet at det ikke er noen innebygd metode i Java som gir denne funksjonen direkte - en vanlig funksjon i språk som Python. Til tross for dette gir Java oss de nødvendige verktøyene for å spinne vår egen løsning.

Oppregninger, de ukjente heltene i mange programmer, er i hovedsak en type hvis felt består av et fast sett med konstanter. Ofte ønsker vi å velge en tilfeldig verdi fra dette settet. Målet med denne artikkelen er å illustrere denne prosessen.

Generer tilfeldig enum i Java

public static <T extends Enum<?>> T randomEnum(Class<T> clazz){
    Random random = new Random();
    int x = random.nextInt(clazz.getEnumConstants().length);
    return clazz.getEnumConstants()[x];
}

La oss bryte ned denne 'randomEnum'-metoden. For det første definerer vi denne metoden til å være generisk skrevet – dette betyr at den kan akseptere oppsummeringer av enhver type. 'Tilfeldig' er en klasse som genererer en strøm av pseudotilfeldige tall, som vi bruker her for å bestemme en tilfeldig indeks for valg. Denne indeksen 'x' er en int, hvis maksimalverdi er begrenset av størrelsen på opptellingen vår eller, mer nøyaktig, lengden på arrayen av enum-konstanter for vår passerte 'clazz' (klasseobjekt).

Etter å ha opprettet 'x', returnerer vi en tilfeldig Enum-konstant ved å bruke array-indeksering med vår tilfeldig genererte 'x'. Det fine med denne metoden er dens fleksibilitet – den fungerer med enhver oppregning!

Forstå Enums i Java

Enum i Java er en datatype som inneholder et fast sett med konstanter. Enum-konstruktører er alltid private eller standard, og du bruker vanligvis Enums når du har verdier som du vet ikke kommer til å endre seg, som dagene i en uke, retninger (nord, sør, øst, vest) og så videre.

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}

Enum-typer er mye kraftigere enn vi tror. I Java er enum-typen en robust variant av den tradisjonelle datatypen som lar oss definere en returtype for en bestemt metode, som en parameter til den metoden eller til og med som et klasseobjekt.

Bruk og fleksibilitet av vår Java-metode

'RandomEnum'-metoden fungerer som et praktisk verktøy for ethvert Java-prosjekt. Dens kraft ligger i dens fleksibilitet - vi kan kalle denne metoden med en hvilken som helst oppregningstype, og den vil returnere en konstant for oppregningen tilfeldig.

Det er bemerkelsesverdig å nevne at datamaskingenerert tilfeldighet er et fascinerende emne i seg selv, som involverer svært komplekse algoritmer og er sentralt i simuleringer og for å generere komplekse datasett. Vår 'randomEnum'-metode er et lite, men kraftig eksempel på hvordan Java utnytter pseudorandomness i sin enorme programmeringsverktøykasse.

Når det gjelder mote, tenk på «randomEnum»-metoden vår som den lille sorte kjolen i Java-garderoben din. Akkurat som den lille svarte kjolen tjener flere formål og kan kles opp eller ned avhengig av anledningen, kan vår 'randomEnum'-metode tilpasses, og passer sømløst inn i ethvert Java-prosjekt der du trenger å generere tilfeldige enums, uavhengig av situasjon eller enum-type .

Relaterte innlegg:

Legg igjen en kommentar