native è una parola chiave java. Contrassegna un metodo, che sarà implementato in altri linguaggi, non in Java. Il metodo è dichiarato senza un corpo e non può essere abstract. Funziona insieme a JNI (Java Native Interface).

Sintassi:

  method();

I metodi nativi erano usati in passato per scrivere sezioni critiche per le prestazioni, ma con java sempre più veloce questo è ora meno comune. I metodi nativi sono attualmente necessari quando

  • È necessario chiamare da java una libreria, scritta in un altro linguaggio.
  • È necessario accedere a risorse di sistema o hardware che sono raggiungibili solo dall’altro linguaggio (tipicamente C). In realtà, molte funzioni di sistema che interagiscono con il computer reale (IO del disco e della rete, per esempio) possono farlo solo perché chiamano il codice nativo.

Per completare la scrittura del metodo nativo, è necessario elaborare la classe con lo strumento javah che genererà un codice header in C. È quindi necessario fornire l’implementazione del codice header, produrre la libreria caricabile dinamicamente (.so sotto Linux, .dll sotto Windows) e caricarla (nel caso più semplice con System.load(library_file_name) . Il completamento del codice è banale se vengono passati solo tipi primitivi come gli interi, ma diventa più complesso se è necessario scambiare stringhe o oggetti dal codice C. In generale, tutto può essere a livello di C, inclusa la creazione di nuovi oggetti e il richiamo di metodi, scritti in java.

Per chiamare il codice in qualche altro linguaggio (incluso C++), è necessario scrivere un ponte da C a quel linguaggio. Questo di solito è banale perché la maggior parte dei linguaggi sono richiamabili dal C.

.

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.