Например, методът на Java:
дълго е (междинно съединение N, S String, Int [] ARR);
има следния вид подпис:
(ILjava / Lang / String [I) J
Хм. не много и не е много ясно. Аз ще се опитам да опиша в собствените си думи.
JNI подпис се състои от списък на видовете на формалните параметри и вида замяна. Форматът на запис, подобен на определения Паскал стил метод: първо, а след това на параметрите на върнатата стойност (между другото, не много хора знаят, че много концепции на Java са били копирани от езика и операционната система Оберон е по-нататъшно развитие N.Virta идеи, Pascal създател). Парковото пространство JNI подпис са забранени - всеки знак има значение и не може да бъде изхвърлен без загуба на смисъл. списък параметър елементи, които не са разделени от никакви символи. На определяне формалните параметри тип по-долу. Има около 4 правила:
- Примитивни типове са кодирани чрез съответната буква от латинската азбука (виж таблицата по-горе):
- Масивите: да показват, че Чо ще бъде не прехвърля скаларна тип и масива се използва символът "[". Намиращ се в непосредствена квадратен тип скоба нотация - вида на елемента на масив. Размерът на масив не е показана.
- Референтни видове (обекти): обозначението на клас започва с главна L, след което няма място пълното име на класа, състоящ се от: пакет (вложени пакети са разделени с наклонена черта) и името на клас (и разделени с наклонена черта). Влизане малки и големи букви. След името на класа определено трябва да отиде запетая, което е в края на определен тип. Аз привлека вниманието ви, че не можете да пропуснете запетаята (включително описание на типа на връщаната стойност на метода).
- Типът на връщане на празнота (т.е. нищо) се заменят със символ "V"
Сега аз го покаже на практика:
1. Int MyMethod1 (поплавък на, овъгляване б) -> (FC) I
2. INT [] MyMethod2 (дълго [] а) -> ([J) [I
3. невалидни MyMethod3 (package1.subpackage2.MyClass [] един, String б) -> (Lpackage1 / subpackage2 / MyClass; Ljava / Lang / String) V
4. package1.subpackage2.MyClass [] MyMethod4 (низ, клас [] Ь, поплавък в) -> (Ljava / Lang / String [Java / Lang / клас; F) [Lpackage1 / subpackage2 / MyClass;
Така магическа на пръв поглед, поредица от символи са доста проста (за разлика от C езикови подписи).
Послепис Придобиване на тази бележка на таблета в метрото. Оказа се, плочите са подходящи за създаване на съдържание. Въпреки удобството на андроид клавиатура все още е възможно да се работи))
За повече информация относно възможностите на компилатора оптимизации, вижте нашите условия за оптимизация.