scala类型转换为java泛型类

时间:2014-06-15 11:46:28

标签: java scala

我想将此代码从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);

1 个答案:

答案 0 :(得分:0)

看起来像

getDeserializer().deserialize(ret.asInstanceOf[TBase[_, _]], record)

但我怀疑演员可能没有必要(在Java和Scala中),因为ret已经有TBase[_, _]作为超类型。