java protobuf 的通用 getDefaultInstance()
Generic getDefaultInstance() for java protobuf
我正在尝试编写一个静态 util 函数,它接受一个 protobuf 对象并确定它是否是一个默认实例,类似于:
static boolean isDefault(ProtobufMessage m) {
return m.equals(m.getDefaultInstance())
}
希望它能够应用于一系列 protobuf 对象,例如 Struct / Types / Messages,但是 getDefaultInstance()
似乎只在子 类.[=13 中定义=]
我正在考虑多态性或泛型,但不确定它是否可以应用于这种情况,有人知道吗?
这个问题有点晚了,但你可以使用 getDefaultInstanceForType()
,它来自 MessageLiteOrBuilder
class 并且不是静态的:
import com.google.protobuf.Message;
import java.util.Objects;
static boolean isDefault(Message m) {
return Objects.equals(m.getDefaultInstanceForType(), m);
}
我正在尝试编写一个静态 util 函数,它接受一个 protobuf 对象并确定它是否是一个默认实例,类似于:
static boolean isDefault(ProtobufMessage m) {
return m.equals(m.getDefaultInstance())
}
希望它能够应用于一系列 protobuf 对象,例如 Struct / Types / Messages,但是 getDefaultInstance()
似乎只在子 类.[=13 中定义=]
我正在考虑多态性或泛型,但不确定它是否可以应用于这种情况,有人知道吗?
这个问题有点晚了,但你可以使用 getDefaultInstanceForType()
,它来自 MessageLiteOrBuilder
class 并且不是静态的:
import com.google.protobuf.Message;
import java.util.Objects;
static boolean isDefault(Message m) {
return Objects.equals(m.getDefaultInstanceForType(), m);
}