Programiranje

Razumevanje sun.misc.Nevarno

Prejšnji teden se je pojavila novica, da so nekateri razvijalci v rokah in trdijo, da je Oracle predlagal odstranitev ned.misc. Nevarno v Javi 9 bo uničil ekosistem Java. Za mnoge razvijalce, ki niso vključeni v programiranje na nizki ravni, pa je zasebni API verjetno zavit v skrivnost. Kaj je ta API tako nevaren, da je že samo njegovo ime nevarno?

Blogger in odprtokodni sodelavec Rafael Winterhalter v "Razumevanju sun.misc.Unsafe" pojasnjuje, da je nevarna koda pogosto potrebna za programiranje na nizki ravni, kjer razvijalci prilagajajo funkcionalnost platforme za določen namen. Čeprav JNI (Java Native Interface) velja za najvarnejšo možnost za programiranje Java na nizki ravni, so mnogi odprtokodni projekti uporabili Nevarno kot manj omejeno rešitev.

Winterhalter predstavlja enega izmed več primerov uporabe Nevarno za premagovanje ovire za programiranje Java:

Prvič, ko sem uporabil Nevarno class je bil namenjen ustvarjanju primerka razreda brez priklica nobenega konstruktorja razreda. Moral sem posredovati celoten razred, ki je imel le precej hrupnega konstruktorja, vendar sem želel le priklicati metode v resničen primerek [...] Ustvarjanje podrazreda je bilo enostavno in če bi bil razred predstavljen z vmesnikom, bi ustvaril proxy bi bila neposredna naloga. Z dragim konstruktorjem pa sem bil obtičal. Z uporabo Nevarno razredu, pa sem se lahko potrudil.

Glejte "Razumevanje sun.misc.Unsafe" in "Java magic, 4. del: sun.misc.Unsafe" za dodatne primere, ki dokazujejo, zakaj in kako uporabljati Nevarno v programih Java.

To zgodbo z naslovom "Razumevanje sun.misc.Unsafe" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found