في الحالات التي لا تكون فيها الواجهة متوافقة مع Java (لأنها تستخدم الاتحادات)
على سبيل المثال) قد يكون من المستحسن تصدير الثوابت (قيم التعداد) إلى
عالم Java. يتوافق هذا السيناريو مع hidl-gen -Ljava-constants
…
الذي يستخرج تصريحات التعداد التي تمت إضافة تعليقات توضيحية إليها من الواجهة.
في حزمة وينتج مكتبة جافا تسمى
[PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants
إضافة تعليقات توضيحية إلى كل منها
إعلان enum المطلوب تصديره على النحو التالي:
@export enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
إذا لزم الأمر، الاسم الذي يتم بموجبه تصدير هذا النوع إلى عالم Java
عن الذي تم اختياره في بيان الواجهة من خلال إضافة
معلمة التعليق التوضيحي name
:
@export(name="JavaFoo") enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
إذا كانت اصطلاحات Java أو التفضيل الشخصي يطلبون أن تكون بادئة مشتركة
مضافة إلى قيم نوع التعداد، فاستخدم معلمة التعليق التوضيحي
value_prefix
:
// File "types.hal". package android.hardware.bar@1.0; @export(name="JavaFoo", value_prefix="JAVA_") enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
تظهر فئة Java الناتجة على النحو التالي:
package android.hardware.bar.V1_0; public class Constants { public final class JavaFoo { public static final int JAVA_SOME_VALUE = 0; public static final int JAVA_SOME_OTHER_VALUE = 1; }; };
أخيرًا، تعريف من نوع Java لأنواع التعداد التي تم تعريفها في
تم تجميع types.hal
داخل فئة Constants
في
حزمة معينة. يتم تجميع أنواع التعداد المعلَن عنها كعناصر ثانوية للواجهة.
ضمن إعلان فئة Java لتلك الواجهة.