匯出常數

如果介面與 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 類別宣告下方。