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


Java Message.getClass方法代碼示例

本文整理匯總了Java中com.google.protobuf.Message.getClass方法的典型用法代碼示例。如果您正苦於以下問題:Java Message.getClass方法的具體用法?Java Message.getClass怎麽用?Java Message.getClass使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.google.protobuf.Message的用法示例。


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

示例1: fromProtobuf

import com.google.protobuf.Message; //導入方法依賴的package包/類
/**
 * @see com.quancheng.saluki.serializer.IProtobufSerializer#fromProtobuf(com.google.protobuf.Message,
 *      java.lang.Class)
 */
@Override
public Object fromProtobuf(Message protobuf, Class<?> pojoClazz) throws ProtobufException {
  try {
    final Class<? extends Message> protoClazz =
        ProtobufSerializerUtils.getProtobufClassFromPojoAnno(pojoClazz);
    if (protoClazz == null) {
      throw new ProtobufAnnotationException(
          "Doesn't seem like " + pojoClazz + " is ProtobufEntity");
    }
    final Map<Field, ProtobufAttribute> protobufFields =
        ProtobufSerializerUtils.getAllProtbufFields(pojoClazz);
    if (protobufFields.isEmpty()) {
      throw new ProtobufException("No protoBuf fields have been annotated on the class "
          + pojoClazz + ", thus cannot continue.");
    }
    Object pojo = pojoClazz.newInstance();
    for (Entry<Field, ProtobufAttribute> entry : protobufFields.entrySet()) {
      final Field field = entry.getKey();
      final ProtobufAttribute protobufAttribute = entry.getValue();
      final String setter = ProtobufSerializerUtils.getPojoSetter(protobufAttribute, field);
      Object protobufValue =
          Protobuf2PojoHelp.getProtobufFieldValue(protobuf, protobufAttribute, field);
      if (protobufValue == null) {
        continue;
      }
      Protobuf2PojoHelp.setPojoFieldValue(pojo, setter, protobufValue, protobufAttribute, field);
    }
    return pojo;
  } catch (Exception e) {
    throw new ProtobufException("Could not generate POJO of type " + pojoClazz
        + " from Protobuf object " + protobuf.getClass() + ": " + e, e);
  }
}
 
開發者ID:venus-boot,項目名稱:saluki,代碼行數:38,代碼來源:ProtobufSerializer.java

示例2: DoWrite

import com.google.protobuf.Message; //導入方法依賴的package包/類
DoWrite(Message prototype, boolean includeDefaults) {
  this.prototype = prototype;
  this.messageClass = prototype.getClass();
  this.descriptor = prototype.getDescriptorForType();
  this.includeDefaults = includeDefaults;
}
 
開發者ID:curioswitch,項目名稱:curiostack,代碼行數:7,代碼來源:DoWrite.java


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