當前位置: 首頁>>代碼示例>>Java>>正文


Java Union類代碼示例

本文整理匯總了Java中org.apache.avro.reflect.Union的典型用法代碼示例。如果您正苦於以下問題:Java Union類的具體用法?Java Union怎麽用?Java Union使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Union類屬於org.apache.avro.reflect包,在下文中一共展示了Union類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: checkUnion

import org.apache.avro.reflect.Union; //導入依賴的package包/類
private void checkUnion(String context, TypeDescriptor<?> type, Schema schema) {
  final List<Schema> unionTypes = schema.getTypes();

  if (!type.getRawType().isAnnotationPresent(Union.class)) {
    // First check for @Nullable field, which shows up as a union of field type and null.
    if (unionTypes.size() == 2 && unionTypes.contains(AVRO_NULL_SCHEMA)) {
      // Find the Schema that is not NULL and recursively check that it is deterministic.
      Schema nullableFieldSchema = unionTypes.get(0).equals(AVRO_NULL_SCHEMA)
          ? unionTypes.get(1) : unionTypes.get(0);
      doCheck(context, type, nullableFieldSchema);
      return;
    }

    // Otherwise report a schema error.
    reportError(context, "Expected type %s to have @Union annotation", type);
    return;
  }

  // Errors associated with this union will use the base class as their context.
  String baseClassContext = type.getRawType().getName();

  // For a union, we need to make sure that each possible instantiation is deterministic.
  for (Schema concrete : unionTypes) {
    @SuppressWarnings("unchecked")
    TypeDescriptor<?> unionType = TypeDescriptor.of(ReflectData.get().getClass(concrete));

    recurse(baseClassContext, unionType, concrete);
  }
}
 
開發者ID:apache,項目名稱:beam,代碼行數:30,代碼來源:AvroCoder.java


注:本文中的org.apache.avro.reflect.Union類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。