【发布时间】:2013-09-03 14:27:54
【问题描述】:
我有一段来自 java 的代码,我正试图在 scala 中实现。
java 代码,工作正常。
protected byte[] serialize(final TBase<?, ?> base) {
try {
return new TSerializer(new TCompactProtocol.Factory()).serialize(base);
} catch (final TException e) {
throw new RuntimeException(e);
}
}
scala 代码我很想实现。
def serialize(base: TBase[_,_]): Array[Byte]={
try{
return new TSerializer(new TCompactProtocol.Factory()).serialize(base)
}catch {
case ex: TException => {
throw new RuntimeException(ex.getMessage())
}
}
}
编译器没有给我"type mismatch; found : org.apache.thrift.TBase[_$1,_$2] where type _$2, type _$1 required:
org.apache.thrift.TBase[_ <: org.apache.thrift.TBase[_, _], _ <: org.apache.thrift.TFieldIdEnum]"的错误
我环顾四周,其中一个建议是使用和 some and none 类型。但不确定这是正确的做法。有人可以帮我解决这个问题吗?
【问题讨论】:
-
我不知道为什么它被否决了。我认为这是一个有效的问题。或者我错过了一些琐碎的事情。
-
如果您发布 TBase 或包含您正在调用的
serialize方法的类施加的类型约束会更好。