Java Native Keyword And Methods

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

  • tilgang system eller maskinvareressurser som bare kan nås fra det andre språket
  • integrer allerede eksisterende eldre kode skrevet I C / c++ i Et Java-program
  • ring et kompilert dynamisk lastet bibliotek med vilkårlig kode fra Java
  • 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

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert.