Kuxazululiwe: khetha i-enum engahleliwe

Njengonjiniyela we-Java onesipiliyoni kanye nesazi semfashini, sivame ukunikezwa umsebenzi wokudala izixazululo ezihlukile zezinkinga eziyinkimbinkimbi. Enye inkinga enjalo ukukhetha okungahleliwe kusuka ekubalweni (Enum) ku-Java. Kungenzeka ukuthi usuqagele ukuthi ayikho indlela eyakhelwe ngaphakathi ku-Java ehlinzeka lo msebenzi ngokuqondile - isici esivamile ezilimini ezifana nePython. Ngaphandle kwalokhu, i-Java isinikeza amathuluzi adingekayo ukuze siphendule isixazululo sethu.

Izibalo, amaqhawe angaqanjwanga wezinhlelo eziningi, empeleni kuwuhlobo inkambu yalo equkethe isethi engaguquki yama-constants. Ngokuvamile sifisa ukukhetha inani elingahleliwe kusuka kule sethi. Inhloso yalesi sihloko ukukhombisa le nqubo.

Ikhiqiza i-Random Enum ku-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];
}

Ake sihlukanise le ndlela ye-โ€˜randomEnumโ€™. Okokuqala, sichaza le ndlela ukuthi ibhalwe ngokujwayelekile - lokhu kusho ukuthi ingamukela ama-enum anoma yiluphi uhlobo. โ€˜Okungahleliweโ€™ ikilasi elikhiqiza uchungechunge lwezinombolo mbumbulu, esizisebenzisa lapha ukuze sinqume inkomba engahleliwe yokukhetha. Le nkomba โ€˜xโ€™ iyi-int, inani eliphezulu elinqunyelwe usayizi wokubala kwethu noma, ngokunembe kakhudlwana, ubude bochungechunge lwama-enum constants e-โ€˜clazzโ€™ yethu edlulisiwe (Into Yekilasi).

Ngemva kokudala u-โ€˜xโ€™, sibuyisela i-Enum engaguquki kusetshenziswa inkomba yamalungu afanayo โ€˜xโ€™ wethu okhiqizwa ngokungahleliwe. Ubuhle bale ndlela ukuguquguquka kwayo - isebenza nanoma yikuphi ukubala!

Ukuqonda i-Enums ku-Java

I-Enum ku-Java iwuhlobo lwedatha equkethe isethi engashintshi yama-constants. Abakhi be-Enum bahlala beyimfihlo noma bezenzakalelayo, futhi ngokuvamile usebenzisa i-Enums uma unamanani owaziyo ukuthi ngeke ashintshe, njengezinsuku zeviki, izikhombisi-ndlela (eNyakatho, eNingizimu, eMpumalanga, eNtshonalanga), njalo njalo.

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

Izinhlobo ze-enum zinamandla kakhulu kunalokho esikucabangayo. Ku-Java, uhlobo lwe-enum luwuhlobo oluqinile lwedatha yomdabu olusivumela ukuthi sichaze uhlobo lokubuyisela lwendlela ethile, njengepharamitha kuleyo ndlela noma njengento yekilasi.

Ukusetshenziswa kanye Nokuguquguquka Kwendlela yethu ye-Java

Indlela ye-โ€˜randomEnumโ€™ isebenza njengesisetshenziswa esiwusizo sanoma iyiphi iphrojekthi ye-Java. Amandla ayo alele ekuguquguqukeni kwayo - le ndlela singayibiza nganoma yiluphi uhlobo lwe-enum futhi izobuyisela ukungaguquki kwalokho kubala ngokungahleliwe.

Kuyaphawuleka ukusho ukuthi ukungahleliwe okukhiqizwe ngekhompuyutha kuyisihloko esihehayo ngokwaso, esibandakanya ama-algorithms ayinkimbinkimbi kakhulu futhi sibalulekile ekulingiseni nasekukhiqizeni amasethi edatha ayinkimbinkimbi. Indlela yethu ye-โ€˜randomEnumโ€™ iyisibonelo esincane kodwa esinamandla sokuthi i-Java iwusebenzisa kanjani ubunganga ebhokisini layo lamathuluzi elikhulu lokuhlela.

Ngokwemfashini, cabanga ngendlela yethu ye-โ€˜randomEnumโ€™ njengengubo encane emnyama yekhabethe lakho le-Java. Njengoba nje ingubo encane emnyama inezinjongo eziningi futhi ingagqokiswa phezulu noma phansi kuye ngesenzakalo, indlela yethu ye-'randomEnum' iyakwazi ukuzivumelanisa nezimo, ifaneleka kalula kunoma iyiphi iphrojekthi ye-Java lapho udinga ukukhiqiza ama-enum angahleliwe, kungakhathaliseki isimo noma uhlobo lwe-enum. .

Okuthunyelwe okuhlobene:

Shiya amazwana