Java Native Klíčových slov a Metod

Přehled

V tomto rychlém tutoriálu, budeme diskutovat pojem nativní klíčové slovo v jazyce Java, a budeme také ukázat, jak integrovat nativní metody do kódu v jazyce Java.

nativní Klíčové slovo v Javě

nejprve si promluvme o tom, co je nativní Klíčové slovo v Javě.

Jednoduše řečeno, to je non-modifikátor přístupu, který se používá k přístupové metody implementovány v jiném jazyce než Java, jako je C/C++.

označuje implementaci metody nebo kódu závislou na platformě a také funguje jako rozhraní mezi JNI a jinými programovacími jazyky.

nativní Metody

nativní metoda je metoda jazyka Java (buď instance metoda nebo metoda třídy), jejichž realizace je také napsán v jiném programovacím jazyce jako je C/C++.

navíc metoda označená jako nativní nemůže mít tělo a měla by končit středníkem:

 native method ();

můžeme je použít k:

  • implementovat rozhraní systémových volání nebo knihovny napsané v jiných programovacích jazycích
  • přístup k systému nebo hardwarové prostředky, které jsou dosažitelné pouze z jiného jazyka
  • integrovat již existující stávající kód napsaný v C/C++, v Java aplikaci
  • hovor sestaven dynamicky načíst knihovnu s libovolný kód v jazyce Java

Příklady

Pojďme se nyní ukazují, jak začlenit tyto metody do kódu v jazyce Java.

4.1. Přístup k Nativním Kódu v Javě

za Prvé, pojďme vytvořit třídu DateTimeUtils, že potřebuje přístup k platformě závislé na nativní metodu s názvem getSystemTime:

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

načíst, budeme používat Systém.loadLibrary.

místo volání k načtení této knihovny ve statickém bloku tak, že je k dispozici v naší třídě:

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

vytvořili Jsme dynamic-link library, nativedatetimeutils, který implementuje getSystemTime v C++ pomocí podrobné pokyny, na něž v našich průvodce JNI čl.

4.2. Testování nativní Metody

Konečně, podívejme se, jak můžeme testovat nativní metody definované v DateTimeUtils třída:

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

Níže je výstup logger:

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

Jak můžeme vidět, s pomocí původních klíčových slov, jsme úspěšně schopni získat přístup k platformě-závislé provádění napsán v jiném jazyce (v našem případě C++).

závěr

v tomto článku jsme se naučili základy nativních klíčových slov a metod. S rychlým příkladem jsme se také naučili, jak je integrovat do Javy.

úryvky kódu použité v tomto článku jsou dostupné přes Github.

začněte s Jarní 5 a na Jaře Boot 2, a to prostřednictvím Naučit Jarní kurz:

>>

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.