我是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();
}

09-10 23:12