Programmering

Forståelse af sun.misc. usikker

Sidste uges nyheder brød, at nogle udviklere er i våben og hævder, at Oracles foreslåede fjernelse af sun.misc. usikker i Java 9 vil ødelægge Java-økosystemet. For mange udviklere, der ikke er involveret i programmering på lavt niveau, er den private API dog sandsynligvis indhyllet i mysterium. Hvad er denne API så farlig, at selve navnet er usikre?

Blogger og open source-bidragyder Rafael Winterhalter forklarer i "Understanding sun.misc.Unsafe", at usikker kode ofte kræves til programmering på lavt niveau, hvor udviklere ændrer platformsfunktionalitet til et specifikt formål. Mens JNI (Java Native Interface) betragtes som den sikreste mulighed for Java-programmering på lavt niveau, har mange open source-projekter brugt Usikker som en mindre begrænset løsning.

Winterhalter præsenterer et af flere eksempler, der bruger Usikker for at overvinde en Java-programmeringshindring:

Første gang jeg brugte Usikker klasse var til at skabe en forekomst af en klasse uden at kalde nogen af ​​klassens konstruktører. Jeg havde brug for at proxy en hel klasse, som kun havde en temmelig støjende konstruktør, men jeg ville kun delegere alle metodeansøgninger til en reel forekomst [...] Det var let at oprette en underklasse, og hvis klassen var blevet repræsenteret af en grænseflade, skabte proxy ville have været en ligetil opgave. Med den dyre konstruktør sad jeg dog fast. Ved hjælp af Usikker klasse kunne jeg dog arbejde mig rundt.

Se "Forstå sun.misc.Unsafe" og "Java magic, del 4: sun.misc.Unsafe" for yderligere eksempler, der demonstrerer hvorfor og hvordan brugen Usikker i Java-programmer.

Denne historie, "Understanding sun.misc.Unsafe" blev oprindeligt udgivet af JavaWorld.