我是编程新手。对不起,如果这是一个太初学的问题。
我正在研究家庭作业的协议缓冲区。 我不知道如何从Message获取字节。
以下是Google协议缓冲区文档中的示例,
message Test1 {
required int32 a = 1;
}
在应用程序中,创建Test1消息并将其设置为150.然后,将消息序列化为输出流。如果您能够检查编码的消息,则会看到三个字节:
08 96 01
我正在使用Eclipse和Java。 我在下面创建了代码。
package com.example.tutorial;
import java.util.Scanner;
import com.example.tutorial.TestProtos.Test1;
import com.example.tutorial.TestProtos.Test1OrBuilder;
public class TestByte {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number:");
int a = sc.nextInt();
Test1.Builder t = Test1.newBuilder();
Test1 obj = t.setA(a).build();
byte[] arr = obj.toByteArray();
System.out.println("byte: "+arr);
当我输入'150'时,它给了我
byte: [B@45ee12a7
我希望获得三个字节,例如google文档中的示例。 我问如何使用协议缓冲区从编码消息中获取字节。
谁能告诉我怎么样?谢谢!!答案 0 :(得分:-1)
尝试
System.out.println(Arrays.toString(obj));
OR
System.out.println(Arrays.toString(arr));