![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
泛型
程序员老林
这个作者很懒,什么都没留下…
展开
-
Kotlin学习之泛型函数和星投影
泛型函数 和Java类型,除了泛型类,函数本身也是支持泛型的。 fun <T> getValue(item: T): T { return item } 普通的函数是没有<T>这部分内容的,表示这个是泛型函数,拥有一个泛型类型T。 val item = getValue<Int>(100) 星投影 对于Foo <out T : TUpper>,其中T是一个具有上界TUpper的协变类型参数,F...原创 2020-07-03 17:36:59 · 380 阅读 · 0 评论 -
Kotlin学习之泛型详解
Kotlin:声明处协变 ,在类型参数声明处提供 Java:使用处协变,具体使用的时候才声明协变 我们随便定义一个泛型如下: class B<T extends CharSequence>{ } 这个表示在实例化B的时候你提供的泛型T必须是CharSequence或者CharSequence的子类,这个和Java的使用处协变不是一回 事。我们说的使用处协变是下面这种形式 B<? extends ...> 两种方式不要混为一谈。 举个例子: inter原创 2020-07-02 18:00:51 · 371 阅读 · 0 评论 -
Kotlin学习之泛型(协变及逆变)
首先看看在Java中的泛型 List<Object> list1; 这样声明,表示我可以给list1放置任何类型的对象。 List<String> list2; 这样表明,list2只可以放置类型是String的对象。 但是在java中这样是不允许的 List<String> list1 = new ArrayList(); List<Object> list2 = list1 ; //编译失败 这意味着List<String&g.原创 2020-06-23 18:46:27 · 233 阅读 · 0 评论 -
Kotlin学习之泛型(协变和逆变实战)
首先看看在Java中 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main4); List<Cat> cats = new ArrayList<>(); List<? extends Animal> anima.原创 2020-06-30 19:43:14 · 234 阅读 · 2 评论