Sabit değerleri dışa aktarın

Bir arayüzün Java uyumlu olmadığı durumlarda (çünkü birleşimler kullanır) örneğin, sabitlerin (enum değerleri) inceleyeceğiz. Bu senaryo, arayüzden ek açıklamalı enum bildirimlerini çıkaran hidl-gen -Ljava-constants … tarafından desteklenir. bir pakete koyar ve isimli bir Java kitaplığı oluşturur [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants. Her birine not ekleyin aşağıdaki şekilde dışa aktarılacak enum beyanı:

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

Gerekirse bu türün Java dünyasına aktarılacağı ad ek açıklama parametresi name:

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

Java kuralları veya kişisel tercihler için ortak bir ön ek isteniyorsa enum türünün değerlerine eklendiğinde, ek açıklama-parametresini kullanın. 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,
};

Elde edilen Java sınıfı aşağıdaki gibi görünür:

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

Son olarak, types.hal, şuradaki bir Constants sınıfı içinde gruplanır: belirtir. Bir arayüzün alt öğeleri olarak tanımlanan sıralama türleri gruplandırılır kodunu girin.