美文网首页Kotlin
Kotlin 通配符泛型

Kotlin 通配符泛型

作者: 技术客栈 | 来源:发表于2020-08-12 11:46 被阅读0次

简述

在日常开发当中我们经常会用到泛型,下面就Kotlin 代码泛型的使用做出记录。主要有如下两部分:

基本使用

  1. 泛型类
//kotlin 
class ResultCallBack <T>{
}

//java
public class ResultCallBack<T>{
}

  1. 泛型方法
//kotlin
fun <T>onSuccess(stateCode: Int, body:T){   
 }

//java
public <T> onSuccess(int stateCode, T body){
}
  1. 泛型接口
//kotlin
interface ResultCallBack <T>{
}

// java
public interface ResultCallBack<T>{
}

泛型约束

在泛型约束主要分为 上界约束和下界约束。下面我们逐一举例

上界通配符

上界通配符通常我们使用<? extends T> 来表示。即泛型参数类型必须是T或者T的子类,用来确定类型的上限。

// java
   public void systemOut(List<? extends T> list){
    
    }
// Kotlin  [ out T  等价于 ? extends T ] 
    fun systemOut(list : List<out T> ){
        
    }

下界通配符

上界通配符通常我们使用<? super T> 来表示。即可以表示所有T的父类(包括T),用来确定类型的上限。

// java
  public void systemIn(List<? super T> list){
    
  }
// kotlin
// kotlin [  in T  等价于  ? super T ]  还有 [ *  等价于 ? ]
    fun systemIn(list: MutableList<in T>) {
      
    }

泛型擦除

泛型声明执行的类型安全检测仅在编译期进行, 运行时实例不保留关于泛型类型的任何信息。

    // kotlin [ Any 对应 Java Object 任意类型]
    fun buildRequest(param:Any){
        // 第一种具体类型
        if (param is Int){
            
        }
        
        // 第二种Array 使用 * 通配符
        if (param is Array<*>){
            
        }
    }

在实际的使用过程遇到的问题,做出记录方便以后查找和加深记忆。

相关文章

  • 泛型、型变与投影

    简单泛型 kotlin 对于简单泛型的支持与java类似, 可以通过通配符,提升代码的灵活度 限定型泛型 在编码实...

  • Kotlin 通配符泛型

    简述 在日常开发当中我们经常会用到泛型,下面就Kotlin 代码泛型的使用做出记录。主要有如下两部分: 基本使用 ...

  • Kotlin型变

    Java的泛型不支持型变,Java采用通配符来解决这个问题;Kotlin采用安全的型变代替了Java的通配符。 一...

  • Android 学习(一):Java 泛型

    Java泛型学习 1.0 泛型常用案例 2.0 泛型方法 3.0 泛型类 4.0 通配符 ? 通配符,占位符,标识...

  • Kotlin泛型方法

    泛型约束 泛型通配符

  • Kotlin-泛型

    源自:码上开学-Kotlin的泛型 kotlin的in和out对应的是java中带上界和下界的通配符?号。【in】...

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • java 泛型通配符和边界

    1. 通配符 泛型中常用的通配符: 我们在定义泛型类,泛型方法,泛型接口的时候经常会碰见很多不同的通配符,比如 T...

  • Java泛型

    1. 泛型通配符与PECS 为什么要使用泛型通配符和边界 List泛型转换需要用到通配符 ? “装A的List” ...

  • 注解

    作用: 在类中定义泛型: 在方法中定义泛型: 给泛型设置通配符上限: 给泛型设置通配符下限: 泛型擦除: 兼容性:...

网友评论

    本文标题:Kotlin 通配符泛型

    本文链接:https://www.haomeiwen.com/subject/qnspdktx.html