Xuất hằng số

Trong trường hợp một giao diện không tương thích với Java (vì giao diện này dùng các phép hợp nhất Ví dụ: bạn vẫn nên xuất hằng số (giá trị enum) sang thế giới Java. Trường hợp này được hidl-gen -Ljava-constants … hỗ trợ, giúp trích xuất các khai báo enum có chú thích từ giao diện tệp trong một gói và tạo ra một thư viện java có tên [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants Chú thích từng cần khai báo enum như sau:

@export
enum Foo : int32_t {
  SOME_VALUE,
  SOME_OTHER_VALUE,
};

Nếu cần, tên mà loại này sẽ được xuất sang thế giới Java có thể khác với giá trị được chọn trong phần khai báo giao diện bằng cách thêm thuộc tính tham số chú giải name:

@export(name="JavaFoo")
enum Foo : int32_t {
  SOME_VALUE,
  SOME_OTHER_VALUE,
};

Nếu quy ước Java hoặc lựa chọn ưu tiên của cá nhân yêu cầu bạn nhập một tiền tố chung thêm vào giá trị của loại enum, hãy sử dụng tham số chú giải 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,
};

Lớp Java thu được sẽ có dạng như sau:

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;
  };
};

Cuối cùng, hãy khai báo kiểu Java cho các kiểu enum được khai báo trong types.hal được nhóm bên trong một lớp Constants trong gói nhất định. Các loại enum được khai báo là con của một giao diện sẽ được nhóm lại trong phần khai báo lớp Java của giao diện đó.