Hi Ben Wright,thanks for your replay.
On Wed, Feb 23, 2011 at 2:12 AM, Ben Wright compuware...@gmail.com wrote:
You will need to provide the type during construction of your
instance. You will also want to provide the Descriptor for the type
you want to deserialize in order to safely perform that step.
i.e.
public GPBFormat(ClassT clazz, Descriptor d) { //save the type
information to instance variables }
Notably, you should not be using T extends DynamicMessage as nothing
extends DynamicMessage... you want T extends Message or T extends
Message.
Alternately you can just use the DynamicMessage type as intended (an
unknown message type) and not use any parameterization, but this gets
trickier to use as a developer as you cannot access fields with direct
getters - you need to use the FieldDescriptors to access fields.
PS: I've written the class you're trying to write (a few times), and
I eventually went with not using parameterization at all but just
using Message and DynamicMessage directly and accessing fields using
FieldDescriptors.
On Feb 22, 2:00 pm, rameshr rudra.ram...@gmail.com wrote:
Hi all im very new to google protocol buffers and java generics.
In my application in one class im serializing and deserializing
objects using google protocl buffers and my class is parameterized by
actual google protocol buffer class.
following is the my code.
public class GPBFormatT extends DynamicMessage implements
IGPBFormatT {
@Override
public byte[] serialize(T t)
{
return t.toByteArray();
}
@Override
public T deSerialize( byte[] value)
{
//deSerialization implemenation.
}
in above code serialization is working fine.but the problem with is
deSerialization. in deSerialization method here i dont know about
actual type of T extends GeneratedMessage, without knowing concrete
class im unable to deSerialize the byte array into google protocol
buffer type.
one approach i know is we can send concrete type of message to
deSerialize method,but my app wont accept this style of code(becoz
when i write code like that,that code will be google protocl buffer
specific)
so how can i solve this without sending actual type to deSerialize
method.
plz replay.
--
You received this message because you are subscribed to the Google Groups
Protocol Buffers group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en.
--
You received this message because you are subscribed to the Google Groups
Protocol Buffers group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en.