<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    google proto buffer 使用(java)

    Posted on 2008-09-08 17:01 G_G 閱讀(2759) 評論(0)  編輯  收藏 所屬分類: javaGeneral
    主頁:http://code.google.com/apis/protocolbuffers/docs/overview.html

    testProto.proto

    package?foo.bar;
    option?java_package?
    =?"com.proto";

    message?Person?{
    ??required?string?name?
    =?1;
    ??required?int32?id?
    =?2;
    ??optional?string?email?
    =?3;

    ??enum?PhoneType?{
    ????MOBILE?
    =?0;
    ????HOME?
    =?1;
    ????WORK?
    =?2;
    ??}

    ??message?PhoneNumber?{
    ????required?string?number?
    =?1;
    ????optional?PhoneType?type?
    =?2?[default?=?HOME];
    ??}

    ??repeated?PhoneNumber?phone?
    =?4;
    }

    運行命令
    '/home/kaiyi/proto/bin/protoc'? --java_out=src testProto.proto?


    使用(? 本類可用,builder 可改,開用但 list 刪除要使用比較郁悶的方法刪除!)
    package?unit;

    import?java.util.ArrayList;
    import?java.util.Arrays;
    import?java.util.Collections;
    import?java.util.List;

    import?com.google.protobuf.InvalidProtocolBufferException;
    import?com.proto.TestProto;
    import?com.proto.TestProto.Person;
    import?com.proto.TestProto.Person.PhoneNumber;

    public?class?Main?{
    ????
    public?static?void?main(String[]?args)?throws?InvalidProtocolBufferException?{
    ????????
    //空創建
    ????????Person.Builder?builder?=?Person.newBuilder();
    ????????builder.setName(
    "liukaiyi");
    ????????builder.setId(
    1);
    ????????
    ????????builder.setEmail(
    "email");
    ????????
    ????????PhoneNumber.Builder?pBuilder1?
    =?PhoneNumber.newBuilder();
    ????????pBuilder1.setNumber(
    "1");
    ????????pBuilder1.setType(TestProto.Person.PhoneType.MOBILE);
    ????????
    ????????
    ????????PhoneNumber.Builder?pBuilder2?
    =?PhoneNumber.newBuilder();
    ????????pBuilder2.setNumber(
    "2");
    ????????pBuilder2.setType(TestProto.Person.PhoneType.HOME);
    ????????
    ????????
    ????????
    ????????builder.addPhone(pBuilder1);
    ????????builder.addPhone(pBuilder2);
    ???????
    //此處為存儲到數據庫 或 傳輸!
    byte[]?data?=?builder.build().toByteArray()?;
    ????????
    for(byte?tb?:?data?)
    ????????????System.out.print(?(
    char)tb?);
    ????????
    ????????
    ????????
    //組建
    ????????Person?person?=?Person.parseFrom(data);
    ????????Person.Builder?builder2?
    =?Person.newBuilder(person);
    ????????builder2.setEmail(
    "test");
    ????????
    ????????PhoneNumber.Builder?pBuilder3?
    =?PhoneNumber.newBuilder();
    ????????pBuilder3.setNumber(
    "3");
    ????????pBuilder3.setType(TestProto.Person.PhoneType.HOME);
    ????????builder2.addPhone(pBuilder3);
    ???????
    //這 我最不明白的地方 , list 這 只能 使用 這種方法才可以刪除 list ????
    ??? ??? List list = new ArrayList(builder2.getPhoneList());
    ??? ??? List<PhoneNumber> ltmp =? builder2.getPhoneList() ;
    ??? ??? for(int i=0;i<list.size();i++ ){
    ??? ??? ??? if(ltmp.get(i).getNumber().equals("2"))
    ??? ??? ??? ??? list.remove( ltmp.get(i) ) ;
    ??? ??? }
    ??? ??? builder2.clearPhone().addAllPhone(list);

    ??????? builder2.clearEmail();

    ????????System.out.println(list.size());
    ????????System.out.println();
    ????????
    byte[]?data2?=?builder2.build().toByteArray()?;
    ????????
    for(byte?tb?:?data2?)
    ????????????System.out.print(?(
    char)tb?);
    ????????
    ????????
    ????????
    ????????
    ????}
    }



    主站蜘蛛池模板: 亚洲欧洲日韩极速播放| 亚洲爱情岛论坛永久| 亚洲风情亚Aⅴ在线发布| 三年片在线观看免费观看高清电影 | 国产aⅴ无码专区亚洲av麻豆| 亚洲AV无码专区在线观看成人| 成人免费淫片在线费观看| 亚洲色偷偷色噜噜狠狠99| 欧美最猛性xxxxx免费| 亚洲精品无码永久在线观看男男| 久久久久久国产精品免费免费 | 亚洲一卡2卡三卡4卡有限公司| 免费人成在线观看网站| 亚洲欧洲国产精品你懂的| 日本h在线精品免费观看| 亚洲人成电影在线观看青青| 毛片免费在线播放| 国产精品手机在线亚洲| 国产午夜亚洲精品理论片不卡| 国产大片免费天天看| 香蕉蕉亚亚洲aav综合| 黄网站色在线视频免费观看| 国产成人精品日本亚洲18图| 永久免费看mv网站入口| 一级毛片免费在线| 亚洲一区二区在线免费观看| 一个人免费观看视频www| 黄色一级毛片免费看| 亚洲高清专区日韩精品| 欧洲乱码伦视频免费| 黄色a级免费网站| 亚洲妇熟XXXX妇色黄| 四虎成人免费网站在线| 国产精品美女久久久免费| 亚洲一区二区三区夜色 | 日韩激情淫片免费看| 一级毛片高清免费播放| 亚洲精品中文字幕无码AV| 国产免费观看黄AV片| 无码人妻丰满熟妇区免费| 亚洲国产aⅴ成人精品无吗|