On Dec 3, 2010, at 14:21 , Koert Kuipers wrote:
public class ProtobufDeserializer<T extends Message> {
    public T fromByteBuffer(ByteBuffer byteBuffer) {

I don't *think* the generic type is going to be enough due to erasure, but I'm not a generics expert. I know something like the following works (I may be messing up the generics syntax since I'm not super familiar with it):

<T extends MessageLite> public T fromByteBuffer(ByteBuffer byteBuffer, T defaultInstance) {
  Builder b = defaultInstance.newBuilderForType();
  return b.build();

You can get defaultInstance from ConcreteMessageType.getDefaultInstance();

You may want to create a tiny InputStream wrapper around ByteBuffer to avoid an extra copy, or if you know it is a heap byte buffer, use the array mergeFrom().

Hope that helps,


Evan Jones

You received this message because you are subscribed to the Google Groups "Protocol 
Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to