在Kotlin中扩展泛型类

Henorek

可以说我在Java中有以下示例代码:

public class MyActivityDelegate implements ActivityMvpDelegate

其中ActivityMvpDelegate:

interface ActivityMvpDelegate<V extends MvpView, P extends MvpPresenter<V>>

转换为Kotlin的相同代码如下所示

class MyActivityDelegate(private val activity: Activity) : ActivityMvpDelegate<MvpView, MvpPresenter<V>>

当然,我在这里有未解决的参考资料,V我不确定这段代码的外观,在Java中,我不必在此处指定泛型。.任何提示都将不胜感激

热键

您的接口声明要求

  • V 延伸 MvpView
  • V(确切地说V,不是其子类型)用作以下参数的通用参数P extends MvpPresenter<V>

鉴于此,您不能扩展ActivityMvpDelegate<MvpView, MvpPresenter<V>>,因为不能保证它V是完全正确的MvpView(而且,在Kotlin中,通用参数不是隐式继承的,因此您必须像一样重新声明它们class SomeClass<T> : SomeInterface<T>)。

但是,您可以将其写为

class MyActivityDelegate(private val activity: Activity) 
: ActivityMvpDelegate<MvpView, MvpPresenter<MvpView>>

或引入另一个通用参数,以便V和的参数P仍然相同:

class MyActivityDelegate<T : MvpView>(private val activity: Activity) 
: ActivityMvpDelegate<T, MvpPresenter<T>>

您还可以将接口的泛型声明从更改P extends MvpPresenter<V>P extends MvpPresenter<? extends V>(或out V在Kotlin中使用),并且您可以使用的任何子类型V作为参数,包括有限的泛型:

class MyActivityDelegate<T : MvpView>(private val activity: Activity) 
: ActivityMvpDelegate<MvpView, MvpPresenter<T>>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在java中扩展多个类的泛型

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

在泛型类中扩展Interface时出现NoSuchFieldError

来自分类Dev

在最终类中扩展可比较泛型

来自分类Dev

扩展集合泛型类的泛型类

来自分类Dev

如何正确创建在Java中扩展泛型接口的有界泛型类

来自分类Dev

Kotlin泛型在类层次结构中不匹配

来自分类Dev

Kotlin 和 Java 中带有嵌套类的泛型

来自分类Dev

在Swift中扩展泛型?

来自分类Dev

如何将泛型类扩展为泛型

来自分类Dev

Typescript泛型扩展类和接口

来自分类Dev

JaxB编组通配符泛型扩展类

来自分类Dev

用泛型T扩展类

来自分类Dev

使用泛型和扩展Abstract类

来自分类Dev

Java:使用泛型扩展类

来自分类Dev

CDI bean从泛型类扩展

来自分类Dev

打字稿泛型-扩展类

来自分类Dev

泛型扩展某个类的问题

来自分类Dev

扩展并扩展了Java中泛型的组合

来自分类Dev

Java 泛型:如何扩展另一个泛型类的泛型类

来自分类Dev

C ++中的泛型类

来自分类Dev

Java中的泛型类

来自分类Dev

如何为在打字稿中扩展泛型类的类添加构造函数?

来自分类Dev

没有重复的Kotlin类泛型

来自分类Dev

Kotlin转换为泛型类

来自分类Dev

在泛型类中实例化 Java 泛型类

来自分类Dev

Swift中具有新泛型的泛型扩展

来自分类Dev

Java泛型-使用泛型函数扩展泛型类