Kotlin编程之泛型

Kotlin编程相关知识点介绍


泛型


在Kotlin编程中,支持泛型

package com.xingen.kotlin.day2017528

fun main(args: Array<String>) {
    var instance=Test<String>("定义一个泛型类")
    instance.test()

    //当可以推断出泛型中的类型,例如:从构造函数的参数等,可以省略指定参数类型。
    Test(1).test()

}
/**
 * 定义一个泛型类,和泛型属性
 */
class Test<T>(var t:T) {
    fun  test(){
        println(t)
    }
}

输出结果:

定义一个泛型类
1

可知:

  • 当可以推断出泛型中的类型,例如:从构造函数的参数等,可以省略指定参数类型

泛型的注意点


在java编程中类型系统最棘手的一部分是通配符类型。但是,在Kotlin编程中,是没有通配符,采用声明变化和类型投影来替代。

通配符的作用: 使用界限通配符增加API的灵活性。

在Java编程中一个常见的问题:

List<String> strs = new ArrayList<String>();
List<Object> objs = strs; // !!! 这里会导致一个问题,在Java中是禁止这样做的
objs.add(1); //将integer类型的数据添加到String 类型的列表中
String s = strs.get(0); // !!! ClassCastException异常 : Integer类型不能转成String

在Kotlin编程中:

一旦声明类型后,不能加入其它的类型数据,如下图所示。

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值