DynamicMessage.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:cfapi 作者:
public Builder setField(FieldDescriptor field, Object value) {
  verifyContainingType(field);
  ensureIsMutable();
  // TODO(xiaofeng): This check should really be put in FieldSet.setField()
  // where all other such checks are done. However, currently
  // FieldSet.setField() permits Integer value for enum fields probably
  // because of some internal features we support. Should figure it out
  // and move this check to a more appropriate place.
  if (field.getType() == FieldDescriptor.Type.ENUM) {
    ensureEnumValueDescriptor(field, value);
  }
  OneofDescriptor oneofDescriptor = field.getContainingOneof();
  if (oneofDescriptor != null) {
    int index = oneofDescriptor.getIndex();
    FieldDescriptor oldField = oneofCases[index];
    if ((oldField != null) && (oldField != field)) {
      fields.clearField(oldField);
    }
    oneofCases[index] = field;
  }
  fields.setField(field, value);
  return this;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号