JavaRush /Blog Jawa /Random-JV /Mbalikake array nul-dawa, ora null
alexnjc
tingkat

Mbalikake array nul-dawa, ora null

Diterbitake ing grup
Asring ana cara sing katon kaya iki:
private List cheesesInStock =;
/**
* @return массив, содержащий все сыры, имеющиеся в магазине,
* or null, если сыров для продажи нет.
*/
public Cheese[] getCheeses() {
if (cheesesInStock.size() == 0)
return null;
}
Ora ana alesan kanggo nambani minangka kasus khusus kahanan sing ora ana keju sing didol. Iki mbutuhake klien nulis kode tambahan kanggo ngolah nilai bali metode пull, contone:
Cheese[] cheeses = shop.getCheeses();
if (cheeses ! = пull &&
Аrrауs.аsList(shор.gеtСhееsеs()).соntаins(Сhееsе.SТILТON))
Sуstеm.оut.рrintln("Jоllу good, just the thing.");
tinimbang prasaja:
if  (Аrrаys.аsList(shор.gеtСhееsеs()).соntаins(Сhееsе.SТILTON)) Sуstеm.оut.рrintln("Jоllу good, just the thing.");
Verbosity jenis iki perlu kanggo meh kabeh telpon cara sing ngasilake null tinimbang array nol-dawa. Iki kebak kesalahan, amarga pangembang klien bisa uga ora nulis kode khusus kanggo ngolah asil null. Kesalahan bisa uga ora dideteksi nganti pirang-pirang taun amarga cara kasebut biasane ngasilake siji utawa luwih obyek. Sampeyan uga kudu kasebut yen bali nulltinimbang array ndadékaké komplikasi saka cara dhewe sing ngasilake array. Kadhang-kadhang mbantah manawa bali null luwih disenengi kanggo ngasilake array sing dawane nol amarga ngindhari biaya kanggo ngalokasiake array ing memori. Argumentasi iki gagal amarga rong alasan. Kaping pisanan, ora ana gunane kanggo kuwatir babagan kinerja ing level iki kajaba profiling program kasebut nuduhake yen metode tartamtu iki minangka alesan utama kanggo degradasi kinerja. Kapindho, saben telpon menyang cara sing ora mbalekake cathetan bisa ngliwati array nul-dawa sing padha menyang klien, amarga sembarang array nol-dawa ora bisa diganti, lan obyek sing ora bisa diganti bisa dienggo bareng. Nyatane, iki pancen kedadeyan nalika sampeyan nggunakake idiom standar kanggo mbuwang unsur saka koleksi menyang array sing dikontrol jinis:
private List сhееsеsInStосk =,
private fiпаl static Cheese[] NULL_CHEESE_ARRAY = nеw Cheese[0];
 /**
* @геtuгп массие, содержащий все сыры, имеющиеся в магазине
*/
public Cheese[] getCheeses() {
геtuгп (Cheese[] сhееsеsInStосk.tоАггау(NULL_СНЕЕSЕ_АRRАУ);
}
Ing idiom iki, konstanta, minangka array nol-dawa ,toArray diterusake menyang cara kanggo nunjukake jinis apa sing kudu bali. Biasane, cara toArrayallocates papan memori kanggo Uploaded bali, nanging yen koleksi kosong, diselehake ing Uploaded input, lan specification Сollесtion,tоАггау(Оbjесt[])mesthekake yen Uploaded input cukup gedhe kanggo ngemot koleksi, iku apa bali. Mulane, idiom presented ora bakal dhewe nyedhiakke array nul-dawa menyang memori, nanging nggunakake "konstanta jinis-tartamtu" minangka kuwi. Ayo ngringkes. Ora ana alesan kanggo cara array kanggo bali null tinimbang array nul-dawa. Idiom iki katon saka basa pemrograman C, ing ngendi dawa array bali kanthi kapisah saka array kasebut. Ing C, ora ana gunane kanggo nyedhiakke memori kanggo array nul-dawa. Sumber: Joshua Bloch, Java TM Effective Programming, Lori Publishing House
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION