Oversikt
i denne raske opplæringen diskuterer vi konseptet med det opprinnelige søkeordet I Java, og vi viser også hvordan du integrerer innfødte metoder i Java-kode.
det opprinnelige Søkeordet I Java
Først av alt, la Oss diskutere hva som er et innfødt søkeord I Java.enkelt sagt, dette er en ikke-tilgangsmodifikator som brukes til å få tilgang til metoder implementert på Et annet Språk enn Java som C/C++.det indikerer plattformavhengig implementering av en metode eller kode og fungerer også som et grensesnitt MELLOM JNI og andre programmeringsspråk.
innfødte Metoder
en innfødt metode er En Java-metode (enten en instansmetode eller en klassemetode) hvis implementering også er skrevet i Et annet programmeringsspråk som C/C++.
videre kan en metode merket som innfødt ikke ha en kropp og skal ende med et semikolon:
native method ();
Vi kan bruke dem til å:implementere et grensesnitt med systemanrop eller biblioteker skrevet i andre programmeringsspråk
Eksempler
la oss nå demonstrere hvordan du integrerer disse metodene i Vår Java-kode.
4.1. Tilgang Til Innfødt Kode I Java
Først av Alt, la Oss lage en klasse DateTimeUtils som trenger tilgang til en plattformavhengig innfødt metode kalt getSystemTime:
public class DateTimeUtils { public native String getSystemTime(); // ...}
for å laste den, bruker Vi Systemet.lastebibliotek.
la oss ringe for å laste dette biblioteket i en statisk blokk slik at den er tilgjengelig i vår klasse:
public class DateTimeUtils { public native String getSystemTime(); static { System.loadLibrary("nativedatetimeutils"); }}
Vi har opprettet et dynamisk lenkebibliotek, nativedatetimeutils, som implementerer getSystemTime I C++ ved hjelp av detaljerte instruksjoner som er dekket i vår guide TIL jni-artikkel.
4.2. Testing innfødte Metoder
Til Slutt, La Oss se Hvordan vi kan teste innfødte metoder definert I DateTimeUtils klassen:
public class DateTimeUtilsManualTest { @BeforeClass public static void setUpClass() { // .. load other dependent libraries System.loadLibrary("nativedatetimeutils"); } @Test public void givenNativeLibsLoaded_thenNativeMethodIsAccessible() { DateTimeUtils dateTimeUtils = new DateTimeUtils(); LOG.info("System time is : " + dateTimeUtils.getSystemTime()); assertNotNull(dateTimeUtils.getSystemTime()); }}
Nedenfor er utgangen av loggeren:
INFO c.b.n.DateTimeUtilsManualTest - System time is : Wed Dec 19 11:34:02 2018
som vi kan se, med hjelp av det opprinnelige søkeordet, kan vi få tilgang til en plattformavhengig implementering skrevet på et Annet Språk (i vårt tilfelle c++).
Konklusjon
i denne artikkelen har vi lært grunnleggende om innfødte søkeord og metoder. Med et raskt eksempel har vi også lært å integrere Dem i Java.
kodebitene som brukes i denne artikkelen er tilgjengelige over Github.
Kom i gang Med Våren 5 Og Våren Boot 2, Gjennom Lær Våren kurset:
>> SJEKK UT KURSET