- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在调用一个 api 来获取输入流,然后调用静态方法 parseFrom(inputstream) 将其转换为 protobuffclass。
如果我用一个特定的类来做它会起作用:
public CustomerDTOOuterClass.CustomerDTO GetCustomer()
{
CustomerDTOOuterClass.CustomerDTO customer = null;
try
{
URL url = new URL("https://localhost:44302/Api/customer/1?");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/x-protobuf");
conn.connect();
InputStream is = conn.getInputStream();
CustomerDTOOuterClass.CustomerDTO customer =
CustomerDTOOuterClass.CustomerDTO.parseFrom(is);
conn.disconnect();
}
catch(Exception ex)
{
System.out.println("[ "+ex.getMessage()+" ]");
}
return customer;
}
但是如果我将它更改为通用类型,它会失败,因为 T 没有方法 parseFrom,是否有任何接口(interface)我可以在 T 中实现以便我可以调用 parseFrom 方法?
public T GetObject()
{
T object = null;
try
{
URL url = new URL("https://localhost:44302/Api/customer/1?");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/x-protobuf");
conn.connect();
InputStream is = conn.getInputStream();
T object = T.parseFrom(is);
conn.disconnect();
}
catch(Exception ex)
{
System.out.println("[ "+ex.getMessage()+" ]");
}
return object;
}
这是我得到的错误: Error:(68, 27) 错误:找不到符号方法 parseFrom(InputStream)
最佳答案
每个生成的 protobuf 类型都包含一个名为 PARSER
的静态成员这是 com.google.protobuf.Parser<T>
的实现界面。你的getObject
方法只需要采用 Parser<T>
作为参数。那么你会这样调用它:
Foo foo = getObject(Foo.PARSER);
关于java - 在 java 中调用通用 protobuffer 类的 parseFrom() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642021/
本文整理了Java中us.ihmc.robotDataLogger.handshake.YoVariableHandshakeParser.parseFrom()方法的一些代码示例,展示了YoVari
我正在尝试将 protobuf 数据从 cpp 端发送到 java 端。 我在 .proto 中定义了多种消息类型 在 Cpp 端,我有每个消息类型的枚举,我将它添加到 buf 输出中,如下所示: u
我似乎找不到 MessageLite 的 MergeFrom* 和 ParseFrom* 方法之间的明确区别。 protobuf 中的类。 我试图尽量减少我必须做的数据复制量,所以我在下面编写了以下代
我只想使用 protobuf 和 java 创建 echo 服务器/客户端。 我用 protobuf-java-2.4.1 和 jdk1.7 测试过。 我写了如下回显服务器代码 // create s
我正在调用一个 api 来获取输入流,然后调用静态方法 parseFrom(inputstream) 将其转换为 protobuffclass。 如果我用一个特定的类来做它会起作用: public C
我有一个问题。 我正在使用 RabbitMq 将消息从 C++ 发送到 Java(Play 框架)。因此,在 C++ 方面,我使用了 SerializeToString 函数(也尝试了 Seriali
我是一名优秀的程序员,十分优秀!