protocol buffer使用小例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

、使用EditPlus定义好一份proto文件(用EditPlus是为了不出现乱码),如下 :

 

package mypackage;

option java_package="proto.entity";
option java_outer_classname="Student";
//定义学生类有哪些属性

message requset{

    required int32 ID=1;
    required string name=2;
    required string gender=3;
    repeated string address=4;
}
//返回学生名字

message response{

    required string name=1;

}

说明:proto.entity是生成的类文件存放的位置,Student是生成的类的类名,自己任意取名。requset、response是message 的名字,任意取名。

 

2、用protobuf编译工具生成类文件:Student  .  java  。(这个类不用看,就不贴上来了。)

 

3、使用实例:

package myStudent;

import java.util.ArrayList;
import java.util.List;

import com.google.protobuf.InvalidProtocolBufferException;


public class Test {

public  String  test ( ) throws InvalidProtocolBufferException {
 
Student . requset . Builder  builder = Student . requset . newBuilder() ;
builder . setID(2) ;
builder . setName("韩梅梅") ;
builder . setGender ("女") ;
List<String> address = new ArrayList<String>();
address . add ("成都") ;
address . add ("湖南") ;
builder . addAllAddress (address) ;

byte[ ]  data = new byte [20] ;

data  =  builder.build().toByteArray() ;

...

}
}

拿到data 可以作需要的操作。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2000服务器文件共享,Win2000 Server实现对共享文件的监控

病毒的出现&#xff0c;使我们在共享文件时变得异常小心。那么&#xff0c;有没有办法监控共享文件的使用情况并加以管理呢&#xff1f;有&#xff0c;用Windows 2000 Server的文件共享监控功能就可以实现。Windows 2000 Server的共享管理功能在“计算机管理”中&#xff0c;它…

学成在线--1.CMS接口开发

文章目录0.定义CMS1.CMS页面管理2.需求分析3.模型类介绍4.定义请求及响应类型5.定义接口6.创建CMS工程结构7.Dao1&#xff09;创建Dao&#xff0c;继承MongoRepository2&#xff09;编写测试类分页查询测试添加删除修改8.Service9.Controller10.接口开发规范0.定义CMS 1&#…

django 进阶

django进阶 django的分页器 基础语法&#xff1a; View Code简单练习&#xff1a; View Code实例应用&#xff1a; View Code自定义分页&#xff1a; View Codeform表单系统 原生form View CodeDjango表单系统中&#xff0c;所有的表单类都作为django.forms.Form的子类创建&…

BZOJ 2440: [中山市选2011]完全平方数

Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Description 小 X 自幼就很喜欢数。但奇怪的是&#xff0c;他十分讨厌完全平方数。他觉得这些 数看起来很令人难受。由此&#xff0c;他也讨厌所有是完全平方数的正整数倍的…

如何减小与“大牛”的差距

为什么同样的时间有的人可以漂亮的完成工作&#xff0c;而有些人废了很大的力气也没有完成&#xff1f; 前者我们常常称之为“大牛”&#xff0c;后者我们常常叫他们“菜鸟”。当然“大牛”都是相对而言的&#xff0c;“大牛”也不可能方方面面都非常厉害&#xff0c;换句话说大…

软件再工程

软件再工程是指对既存对象系统进行调查&#xff0c;并将其重构为新形式代码的开发过程。最大限度地重用既存系统的各种资源是再工程的最重要特点之一。从软件重用方法学来说&#xff0c;如何开发可重用软件和如何构造采用可重用软件的系统体系结构是两个最关键问题。不过对再工…

武侠乂怎么修改服务器,武侠乂怎么操作 按键功能详细介绍

武侠乂将在7月27日开启限量测试了&#xff0c;入手前的第一件事情当然要熟悉操作按键了&#xff0c;下面给大家带来的是武侠乂按键介绍&#xff0c;一起来看看吧。武侠乂将在7月27日开启限量测试了&#xff0c;玩家们马上就能体会到武侠吃鸡的快感&#xff0c;除了吃鸡模式外还…

RMI使用小例

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1、定义一个接口&#xff08;继承Remote&#xff09;&#xff1a; 方法要抛RemoteException。 package rmi; import java.rmi.RemoteEx…

产品经理和项目经理有哪些区别?

1.产品经理和项目经理的差异 首先&#xff0c;产品经理和项目经理的职责定义不太一样。 产品经理是 Product Manager &#xff0c;主要是负责市场调研、用户研究并根据用户的需求&#xff0c;定义和设计产品&#xff0c;然后考虑产品的商业模式、运营推广方式等。接下来去推动…

09-完整性约束

本节重点&#xff1a; not null 与 defaultuniqueprimaryauto_incrementforeign key一、介绍 约束条件与数据类型的宽度一样&#xff0c;都是可选参数 作用&#xff1a;用于保证数据的完整性和一致性 主要分为&#xff1a; PRIMARY KEY (PK) #标识该字段为该表的主键&#x…

fread rb与r,wb,w的区别

在fread时&#xff0c;"rb"与"r"对某些字符作用&#xff0c;是不同的&#xff1b; 文本模式和二进制模式读取不一样的 文本&#xff1a;读: 遇到回车-换行(0D 0A)&#xff0c;就会转换为换行符0A 写&#xff1a;遇到换行符0A&#xff0c;就会转换为回车-换…

软件正向工程

正向工程是通过实现语言的映射而把模型转换为代码的过程。正向工程也称为革新或改造&#xff0c;这项活动不仅从现有程序中恢复设计信息&#xff0c;而且使用该信息去改变或重构现有系统&#xff0c;以提高其整体质量。 换句话说&#xff1a;一般工业产品开发是从确定预期功能…

学成在线--2.CMS前端页面查询开发

文章目录0.思路总结1.创建CMS模块的目录架构2.创建页面并配置路由1&#xff09;在page目录新建page_list.vue&#xff0c;扩展名为.vue。2&#xff09;在cms的router下配置路由。3&#xff09;在base目录下的router导入cms模块的路由3.使用Table组件完善页面内容4.Api调用服务器…

java.util.IdentityHashMap.entrySet()方法实例

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 entrySet() 方法是用来获取此映射中包含的映射关系的set视图。 声明 以下是java.util.IdentityHashMap.entrySet()方法的声明。 publ…

URL转微信可识别的二维码

jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 &#xff0c;使用它可以很方便的在页面上生成二维条码。 用法&#xff1a; 1、引入jquery.qrcode.min.js <script src"jquery.min.js"></script> <script src"jquery.qrc…

javascript数组及操作方法

数组及操作方法 数组就是一组数据的集合&#xff0c;javascript中&#xff0c;数组里面的数据可以是不同类型的。 定义数组的方法 //对象的实例创建 var aList new Array(1,2,3);//直接量创建 var aList2 [1,2,3,asd];操作数组中数据的方法 1、获取数组的长度&#xff1a;aLi…

如何创建比C语言更快的编程语言?

【CSDN编译整理】近日&#xff0c;beza1e1上发表了一篇博客《Faster than C》&#xff0c;在Hacker News和Reddit Programming上引发了开发者们的激烈讨论。现将此文编译&#xff0c;我们一起来探讨下。 单从编程语言特性来判断&#xff0c;虽然Fortran语言也以快而著称&#…

面向对象方法学

面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物&#xff0c;采用人类在认识客观世界的过程中普遍运用的思维方法&#xff0c;直观、自然地描述客观世界中的有关事物。 面向对象的分析方法是利用面向对象的信息建模概念&#xff0c;如实体、关系、属性等&#x…

学成在线--3.CMS页面管理开发(自定义条件查询)

文章目录0.需求分析1.服务端--Dao2.服务端--Service3.服务端--Controller4.前端1&#xff09;page_list.vue中增加查询表单2&#xff09;page_list.vue中添加数据模型对象3&#xff09;在钩子方法中构建siteList站点列5.Api调用1&#xff09;修改 cms.js&#xff0c;向服务端传…

动态生成表格、隐藏表格、选中删除任意行、jquery、输入验证

PS&#xff1a; 游戏公司后台开发&#xff0c;工作模式&#xff1a;996。 于是写博客这事也荒废了.... 想想还是写一点吧。 呵呵&#xff0c;请不要笑话我注释写这么多&#xff0c;习惯了&#xff0c;我上班写代码都是有注释的。 我建两个相似的表是为了&#xff0c;给后台使…