如果介面與 Java 不相容 (因為該介面使用聯集)
例如,將常數 (列舉值) 匯出到
和 Java 的連結hidl-gen -Ljava-constants
…
支援這個情境,從介面擷取已加註的列舉宣告
檔案並產生名為
[PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants
。為每個項目加上註解
要匯出的列舉宣告,如下所示:
@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; }; };
最後,在
types.hal
會在 Constants
類別中歸類在
指定的套件。宣告為介面子項的列舉類型已分組
到該介面的 Java 類別宣告下方。