Overview
In this quick tutorial, we’ll discuss the concept of the native keyword in Java, and we’ll also show how to integrate native methods into Java code.
a palavra-chave nativa em Java
Em Primeiro Lugar, vamos discutir o que é uma palavra-chave nativa em Java.
simplificando, este é um modificador sem acesso que é usado para acessar métodos implementados em uma linguagem diferente de Java como C / C++.
indica a implementação dependente da plataforma de um método ou código e também atua como uma interface entre JNI e outras linguagens de programação.
Métodos nativos
Um método nativo é um método de Java (um método de instância ou um método de classe), cuja implementação é também escrito em outra linguagem de programação, como C/C++.
Além disso, um método marcado como nativo não pode ter um corpo e deve terminar com um ponto-e-vírgula:
native method ();
Nós podemos usá-los para:
- implementar uma interface com o sistema de chamadas ou bibliotecas escritas em outras linguagens de programação
- sistema de acesso ou recursos de hardware que só são acessíveis a partir de outras linguagens
- integrar o já existente legado de código escrito em C/C++ em um aplicativo Java
- chamar um compilado dinamicamente carregados biblioteca com código arbitrário do Java
Exemplos
Vamos agora demonstrar como integrar estes métodos no nosso código Java.
4.1. Acessando o Código Nativo em Java
em Primeiro lugar, vamos criar uma classe DateTimeUtils que precisa acessar um dependente de plataforma de método nativo chamado getSystemTime:
public class DateTimeUtils { public native String getSystemTime(); // ...}
Para carregá-lo, vamos utilizar o Sistema.loadLibrary.
Vamos colocar a chamada para carregar esta biblioteca em um bloco estático, de modo que ele está disponível na nossa classe:
public class DateTimeUtils { public native String getSystemTime(); static { System.loadLibrary("nativedatetimeutils"); }}
temos criado uma biblioteca de vínculo dinâmico, nativedatetimeutils, que implementa getSystemTime em C++ usando instruções detalhadas coberta no nosso guia para JNI artigo.
4.2. O teste de Métodos nativos
Finalmente, vamos ver como podemos testar métodos nativos definido no DateTimeUtils classe:
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()); }}
Abaixo está a saída do registrador de:
INFO c.b.n.DateTimeUtilsManualTest - System time is : Wed Dec 19 11:34:02 2018
Como podemos ver, com a ajuda dos nativos, palavra-chave estamos com êxito capaz de acessar um dependente de plataforma de implementação escrito em outro idioma (no nosso caso, C++).
conclusão
neste artigo, aprendemos o básico de palavras-chave nativas e métodos. Com um exemplo rápido, também aprendemos a integrá-los em Java.
os excertos de código usados neste artigo estão disponíveis sobre o Github.
Começar com Mola 5 e Primavera de Inicialização 2, através do Aprender a Primavera curso:
>> confira O CURSO