A Java natív kulcsszó és módszerek

áttekintés

ebben a gyors oktatóanyagban megvitatjuk a natív kulcsszó fogalmát a Java-ban, és megmutatjuk, hogyan lehet integrálni a natív módszereket a Java kódba.

A natív kulcsszó a Java-ban

először is beszéljük meg, mi a natív kulcsszó a Java-ban.

egyszerűen fogalmazva, ez egy nem hozzáférési módosító, amelyet a Java-tól eltérő nyelven megvalósított módszerek elérésére használnak, mint például a C / C++.

egy metódus vagy kód platformfüggő implementációját jelzi, és interfészként is működik a JNI és más programozási nyelvek között.

natív módszerek

a natív módszer egy Java módszer (akár egy példány módszer, akár egy osztály módszer), amelynek végrehajtása más programozási nyelven is meg van írva, például C/C++.

ezenkívül egy natívként megjelölt metódusnak nem lehet teste, és pontosvesszővel kell végződnie:

 native method ();

használhatjuk őket:

  • interfész megvalósítása más programozási nyelveken írt rendszerhívásokkal vagy könyvtárakkal
  • hozzáférési rendszer vagy hardver erőforrások, amelyek csak a másik nyelvről érhetők el
  • integrálja a már meglévő, C/C++ nyelven írt örökölt kódot egy Java alkalmazásba
  • hívjon egy lefordított dinamikusan betöltött könyvtárat tetszőleges Java kóddal

példák

most mutassuk be, hogyan lehet ezeket a módszereket integrálni a Java kódunkba.

4.1. Natív kód elérése Java-ban

először is hozzunk létre egy osztályt DateTimeUtils hogy hozzáférjen egy platformfüggő natív metódushoz, amelynek neve getSystemTime:

public class DateTimeUtils { public native String getSystemTime(); // ...}

a betöltéshez a rendszert fogjuk használni.loadLibrary.

tegyük a hívást, hogy betöltse ezt a könyvtárat egy statikus blokkban, hogy elérhető legyen az osztályunkban:

public class DateTimeUtils { public native String getSystemTime(); static { System.loadLibrary("nativedatetimeutils"); }}

létrehoztunk egy dinamikus link könyvtárat, nativedatetimeutils, amely végrehajtja a getSystemTime-T C++ nyelven, a JNI útmutatójában szereplő részletes utasítások felhasználásával cikk.

4.2. Natív módszerek tesztelése

végül nézzük meg, hogyan tesztelhetjük a DateTimeUtils osztályban definiált natív módszereket:

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()); }}

Az alábbiakban látható a naplózó kimenete:

 INFO c.b.n.DateTimeUtilsManualTest - System time is : Wed Dec 19 11:34:02 2018

mint láthatjuk, a natív kulcsszó segítségével sikeresen hozzáférhetünk egy platformfüggő implementációhoz, amelyet más nyelven (esetünkben C++).

következtetés

ebben a cikkben megtanultuk a natív kulcsszavak és módszerek alapjait. Egy gyors példával azt is megtanultuk, hogyan lehet integrálni őket a Java-ba.

a cikkben használt kódrészletek elérhetők a Github-on.

kezdje el a tavaszi 5-ös és a tavaszi Boot 2-es tanulást a tavaszi tanfolyamon keresztül:

>> nézze meg a tanfolyamot

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.