Izvorna ključna riječ i metode za Java

1. Pregled

U ovom brzom vodiču razgovarat ćemo o konceptu domorodac u Java, a također ćemo pokazati kako se integrirati domorodac metode u Java kod.

2. The domorodac Ključna riječ u Javi

Prije svega, razgovarajmo o tome što je a domorodac ključna riječ u Javi.

Jednostavno rečeno, ovo je modifikator koji nema pristup i koristi se za pristup metodama implementiranim u jeziku koji nije Java, poput C / C ++.

Označava implementaciju metode ili koda ovisno o platformi i također djeluje kao sučelje između JNI i drugih programskih jezika.

3. domorodac Metode

A domorodac metoda je Java metoda (ili metoda instance ili metoda klase) čija je implementacija također napisana na drugom programskom jeziku kao što je C / C ++.

Štoviše, metoda označena kao domorodac ne može imati tijelo i treba završiti sa zarezom:

[javno | zaštićen | private] izvorna [return_type] metoda ();

Pomoću njih možemo:

  • implementirati sučelje sa sistemskim pozivima ili knjižnicama napisanim na drugim programskim jezicima
  • pristup sistemskim ili hardverskim resursima do kojih se može doći samo s drugog jezika
  • integrirati već postojeći naslijeđeni kôd napisan na C / C ++ u Java aplikaciju
  • pozvati kompajliranu dinamički učitanu knjižnicu s proizvoljnim kodom s Jave

4. Primjeri

Pokažimo sada kako integrirati ove metode u naš Java kôd.

4.1. Pristup matičnom kodu na Javi

Prije svega, napravimo razred DateTimeUtils koji treba pristupiti platformi ovisno domorodac metoda imenovana getSystemTime:

javna klasa DateTimeUtils {javni izvorni niz getSystemTime (); // ...}

Da bismo ga učitali, upotrijebit ćemo System.loadLibrary.

Postavimo poziv za učitavanje ove knjižnice u statički blok tako da bude dostupan u našoj klasi:

javna klasa DateTimeUtils {javni izvorni niz getSystemTime (); static {System.loadLibrary ("nativedatetimeutils"); }}

Stvorili smo knjižnicu dinamičkih veza, nativedatetimeutils, koji provodi getSystemTime u C ++ koristeći detaljne upute pokrivene u našem vodiču za JNI članak.

4.2. Testiranje domorodac Metode

Napokon, pogledajmo kako možemo testirati izvorne metode definirane u DateTimeUtils razred:

javna klasa DateTimeUtilsManualTest {@BeforeClass javna statička void setUpClass () {// .. učitavanje ostalih ovisnih knjižnica System.loadLibrary ("nativedatetimeutils"); } @Test javna praznina givenNativeLibsLoaded_thenNativeMethodIsAccessible () {DateTimeUtils dateTimeUtils = novi DateTimeUtils (); LOG.info ("Vrijeme vremena je:" + dateTimeUtils.getSystemTime ()); assertNotNull (dateTimeUtils.getSystemTime ()); }}

Ispod je izlaz zapisnika:

[glavna] INFO c.b.n.DateTimeUtilsManualTest - Vrijeme sustava je: sri prosinac 19 11:34:02 2018

Kao što vidimo, uz pomoć domorodac ključna riječ, uspješno možemo pristupiti implementaciji ovisno o platformi napisanoj na drugom jeziku (u našem slučaju C ++).

5. Zaključak

U ovom smo članku naučili osnove domorodac ključne riječi i metode. Kratkim primjerom naučili smo i kako ih integrirati u Javu.

Isječci koda korišteni u ovom članku dostupni su putem Githuba.