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 đó.