我想将此代码从java转换为scala:
特质ThriftPailStructure [T<:Comparable]扩展了PailStructure [T] {
public T deserialize(byte[] record) {
// A new data object is constructed prior to deserialization
T ret = createThriftObject();
try {
getDeserializer().deserialize((TBase <?, ?>) ret, record);
} catch (TException e) {
throw new RuntimeException(e);
}
return ret;
}
...
}
在TB中将TBase定义为:
public interface TBase <T extends org.apache.thrift.TBase<?,?>,
F extends org.apache.thrift.TFieldIdEnum> extends java.lang.Comparable<T>,
java.io.Serializable {
...
}
我知道常见的转换,但我坚持使用这行代码:
getDeserializer().deserialize((TBase <?, ?>) ret, record);
答案 0 :(得分:0)
看起来像
getDeserializer().deserialize(ret.asInstanceOf[TBase[_, _]], record)
但我怀疑演员可能没有必要(在Java和Scala中),因为ret
已经有TBase[_, _]
作为超类型。