8482348754
Jacek Rumiński - Język JAVA - Rozdział 8
tego komentarza zawierającego nazwę klasy, w ciele której zadeklarowano metodę rodzimą nazwę metody rodzimej w kodzie Javy oraz podpis (sygnatura) metody. Sygnatura metody ma format (typy-argumentów)typy-zwracane; gdzie poszczególne typy są reprezentowane przez swoje sygnatury, i tak:
sygnatura_znaczenie typu w Javie
Z boolean
B byte
C char
S short
I int
J long
F float
D double
Lpełna-nazwa-klasy pełna nazwa klasy
[typ typQ
W powyższym przykładzie pliku nagłówkowego widnieje informacja, że metoda zawiera argument o sygnaturze Ljava/lang/String czyli obiekt klasy String oraz zwraca wartość typu o sygnaturze / czyli typu int. Można określić sygnatury typów argumentów i wartości zwracanych metod poprzez użycie narzędzia de-asemblacji kodu a mianowicie javap\
javap -s -p Informacje
co wygeneruje:
Compiled from lnformacje.java class Informacje extends java.lang.Object { static {};
/* ()V */ lnformacje();
/* ()V */
public native int infoSystemu(java.lang.String);
/* (Ljava/lang/String;)l */ public static void main(java.lang.String[|);
/* ([Ljava/lang/String;)V */
ł
W powyższym wydruku w opcji komentarza zawarto sygnatury typów.
Po opisie metody rodzimej następuje deklaracja metody dla środowiska rodzimego czyli C/C++. Deklaracja ta oprócz omówionej już nazwy zawiera szereg nowych elementów i tak:
JNIEXPORT i JNICALL - oznaczenie funkcji eksportowanych z bibliotek (jest to odniesienie się do specyfikacji deklaracji funkcji eksportowanych, JNIEXPORT oraz JNICALL są zdefiniowane w jni_md.h);
jint lub inny typ - oznaczenie typu elementu zwracanego przez funkcję, np.
8-6
Wyszukiwarka
Podobne podstrony:
Jacek Rumiński - Język JAVA - Rozdział 8 identyfikator protokołu oraz nazwę zasobów. IdentyfikatorJacek Rumiński - Język JAVA - Rozdział 8Rozdział 8 Integracja Javy z innymi językami - JNI. ProgramoJacek Rumiński - Język JAVA - Rozdział 8 InetAddress. getAIIByName(String nazwa), InetAddress.Jacek Rumiński - Język JAVA - Rozdział 8 Powyższy program umożliwia pobranie źródła wskazanego plikuJacek Rumiński - Język JAVA - Rozdział 8 - nasłuch, - akceptacjaJacek Rumiński - Język JAVA - Rozdział 8 public static void main(StringQ args) { Socket gniazdo; StrJacek Rumiński - Język JAVA - Rozdział 8 if (args.length > 0) { host = args[0];} for (int n = 0;Jacek Rumiński - Język JAVA - Rozdział 8 host = args[0];} try { gniazdo = new Socket(host,Jacek Rumiński - Język JAVA - Rozdział 8 strumienWy.println(echo); //wyślij do serweraJacek Rumiński - Język JAVA - Rozdział 8 }//od try catch (SocketExceptionJacek Rumiński - Język JAVA - Rozdział 8 serwera. Należy podkreślić, że biblioteki kodów konieczne dJacek Rumiński - Język JAVA - Rozdział 8 ■ zbiór metod (funkcji) umożliwiających wymianę danych iJacek Rumiński - Język JAVA - Rozdział 8 GenericServlet HttpServlet definiowane kolejno w dwóchJacek Rumiński - Język JAVA - Rozdział 8 infoSystemu -> Java_lnformacje_infoSystemu, (brak nazwyJacek Rumiński - Język JAVA - Rozdział 8 typ w Javie, typ rodzimy, rozmiar. typ dla C/C++Jacek Rumiński - Język JAVA - Rozdział 8 printf("Obslugiwana aktualnie opcja to: %sJacek Rumiński - Język JAVA - Rozdział 8 gdzie podawany czas zależy oczywiście od ustawieńJacek Rumiński - Język JAVA - Rozdział 8 jclass c = (env)->GetObjectClass(o); gdzie o jest zmiennJacek Rumiński - Język JAVA - Rozdział 8 Na zakończenie tej sekcji warto przedstawić w skrócie zagadwięcej podobnych podstron