问题描述
给予
public interface StubTransformer {
AbstractStub<?> transform(String name,AbstractStub<?> stub);
}
和
public static <T extends AbstractStub<T>> T attachHeaders(T stub,Metadata extraHeaders) {...}
此Kotlin类无法编译。
class MetadataInjectingStubTransformer: StubTransformer {
override fun transform(name: String,stub: AbstractStub<*>): AbstractStub<*> {
val header = Metadata()
return MetadataUtils.attachHeaders(stub,header)
}
}
错误
Type parameter bound for T in
fun <T : AbstractStub<T!>!> attachHeaders(stub: T!,extraHeaders: Metadata!): T!
is not satisfied: inferred type AbstractStub<*>! is not a subtype of AbstractStub<AbstractStub<*>!>!
但是可以强制编译Java版本。
public class MetadataInjectingStubTransformer implements StubTransformer {
@Override
@SuppressWarnings("unchecked")
public AbstractStub<?> transform(String name,AbstractStub stub) {
Metadata header = new Metadata();
return MetadataUtils.attachHeaders(stub,header);
}
}
我们如何编译Kotlin代码?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)