我是Java中泛型概念的新手
在我的应用程序中,我在一类中使用泛型,以下是我的示例代码
public class GPBFormat<T extends Message> implements IGPBFormat<T> {
@Override
public byte[] serialize(T t)
{
return t.toByteArray();
}
@Override
public T deSerialize(byte[] value)
{
T.parseFrom(value);
return null;
}
我在上面的代码中使用了
parseFrom
方法,但是问题是该方法仅存在于具体的类中,即哪些类扩展了Message
类,因此我无法使用此泛型访问parseFrom
方法。我该如何解决?谢谢,
拉米什
最佳答案
这些协议缓冲区吗?您的parseFrom
方法是静态的吗?
如果parseFrom
不是静态的,则应该这样做
@Override
public boolean deSerialize(T message, byte[] value)
{
// protocol messages return boolean whether parsing succeeded
return message.newBuilderForType().mergeFrom(value).build();
}