[英]How to override inherited getter from java class in a kotlin companion object
[英]How to override Any parameter in Kotlin with Java Object?
这不是因为它写在 Java 中。这是因为您试图通过缩小输入参数的类型来违反接口契约。 该接口声明file
可以是任何类型,因为它是 Any 类型。 如果编译器允许您缩小类型定义,那么您的 class 将能够调用file
上特定于MultipartBody.Part
的函数,然后将您的 class 的实例作为接口类型传递,而其他一些代码可以传递不同的 class 类型到您的 function 作为file
,这没有意义。
我不能建议如何避免这个问题,因为你没有说你是如何使用你的界面的。 我看不出它与 Retrofit 有什么关系。
通常,使用 generics 可能会解决此类问题,但这仅适用于某些用例。 例子:
interface Foo<in T> {
suspend fun uploadAvatar(file: T, sessionToken: String)
}
class MyFooBodyImpl: Foo<MultipartBody.Part> {
suspend fun uploadAvatar(file: MultipartBody.Part, sessionToken: String) {
TODO()
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.