kotlin中is!isasas?的使用方式(代码片段)

lgz0921 lgz0921     2022-12-26     109

关键词:

1.is运算符相当于java中的instanceof,用来判断当前类型是不是对应的类型(可以是对应的类型的子类),说的很抽象,上代码看一下。

fun main() 
    val str = "helloWorld"
    println(str is String)

输出:true

2.!isis的否定形式(就是效果跟is相反),上代码看一下

fun main() 
    val x = 10
    println(x !is Int)

输出:false

3.as是相当于是显示类型转换(就是强制类型转换),转换成功就转换成功,转换失败会报错

4.as?as安全一点,转换成功就转换成功,转换失败会返回null

注意:父类转换为子类是对OOP(Object Oriented Programming,面向对象编程)的严重违反,不推荐使用。(父类是不能转换为子类的,子类包含了父类所有的方法和属性,而父类不一定包含子类所有的方法和属性,所以这种转换是不可以的,即便是两个具有父子关系的空类型,也不行。)

kotlin类的继承②(使用is运算符进行类型检测|使用as运算符进行类型转换|智能类型转换|any超类)(代码片段)

...能类型转换)三、Any超类一、使用is运算符进行类型检测在Kotlin中,如果不确定一个实例对象的类型,可以使用is运算符进行判定,使用方法实例对象is判定类型上述用法可以判定实例对象是否是判定类型,如果是返回true,反之返回false;... 查看详情

在 Kotlin 中使用 BufferedReader 的最佳方式

】在Kotlin中使用BufferedReader的最佳方式【英文标题】:BestwaytouseBufferedReaderinKotlin【发布时间】:2017-04-2109:36:26【问题描述】:所以我刚刚开始使用KotlinforAndroid,并将我的AndroidJava代码转换为Kotlin。在一次转换中,我偶然发现了一... 查看详情

kotlin中使用注解框架不起作用(代码片段)

问题在Kotlin中使用注解框架,发现在编译的时候注解的字段没有生效。原因由于Kotlin是基于jvm运行时的开发语言,所以需要单独对它引入注解环境解决方法:这个方式是基于Gradle方式的,如使用开发工具InterJect,AndroidStudio,其... 查看详情

kotlin学习(代码片段)

 集合:  Kotlin可以使用Java声明集合的方法,也有自己的声明方式。//Java方式vala=ArrayList<Int>()//Kotlin方式valb=arrayListOf<Int>()  顶层函数和属性:  Kotlin中没有static修饰符。  为了消除静态工具类,Kotlin可... 查看详情

有没有办法以编程方式使用 kotlin 更改片段中的文本颜色? [复制]

】有没有办法以编程方式使用kotlin更改片段中的文本颜色?[复制]【英文标题】:Isthereanywaytochangethetextcolorinafragmentusingkotlinprogrammatically?[duplicate]【发布时间】:2020-04-0715:50:01【问题描述】:这是示例代码,我需要在特定条件下... 查看详情

谈谈我对kotlin中协程的理解(代码片段)

...程(Coroutines)是什么2你需要用协程吗?3使用协程优点4kotlin协程的演进5实现方式5.1环境准备5.2创建协程的几种方式6协程的应用场景6.1从相册中读取图片并显示6.2AndroidJetpack中使用kotlin协程6.2.1在ViewModel中使用ViewModelScope6.2.2在Act... 查看详情

在“使用”标准库函数中测试 Kotlin lambda

】在“使用”标准库函数中测试Kotlinlambda【英文标题】:TestKotlinlambdawithin"use"standardlibraryfunction【发布时间】:2019-10-0419:21:14【问题描述】:我正在尝试在传递给使用Kotlin标准库内联函数的lambda函数中对代码进行单元测试... 查看详情

kotlin基础条件控制when(代码片段)

When表达式when将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。when既可以被当做表达式使用也可以被当做语句使用。如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用,则忽略个... 查看详情

kotlin进程通信------socket(代码片段)

Socket作为进程通信的一种方式,在日常的进程通信中使用的不频繁,它更常用的是即时通讯、跨设备的一对多场景等。android进程间通信中使用socket,一般是一对一的场景,是常用Socket方式的降级、简单化的使用方... 查看详情

kotlin进程通信------socket(代码片段)

Socket作为进程通信的一种方式,在日常的进程通信中使用的不频繁,它更常用的是即时通讯、跨设备的一对多场景等。android进程间通信中使用socket,一般是一对一的场景,是常用Socket方式的降级、简单化的使用方... 查看详情

有没有办法以编程方式使用kotlin更改片段中的文本颜色?(代码片段)

这是示例代码,在某些情况下,我需要在文本视图中更改文本颜色。像,不同月份的文字颜色应该不同。谢谢。FragmentOne.ktimportandroid.os.Bundleimportandroidx.fragment.app.Fragmentimportandroid.view.LayoutInflaterimportandroid.view.Viewimportandroid.view.ViewG... 查看详情

kotlin进程通信------aidl(代码片段)

前篇介绍了进程通信中,串行通信的方式Messenger。但如果进程间,有多个方法要并行调用,那么Messenger就不合适使用,而应该使用AIDL方式。Java方式的AIDL,在之前的文章中有介绍:Android远程接口之AIDL——P... 查看详情

kotlin中委托的概念和原理(代码片段)

kotlin中委托的概念和原理问题背景kotlin的日常使用过程中,经常会使用到委托机制,问题来了,委托机制究竟是什么呢?委托模式:多个对象接收并处理同一请求,他们将请求委托给另一个对象统一处理请求。比如调用A类的metho... 查看详情

Firebase:在 Kotlin/Java 中使用枚举字段的干净方式?

】Firebase:在Kotlin/Java中使用枚举字段的干净方式?【英文标题】:Firebase:cleanwayforusingenumfieldsinKotlin/Java?【发布时间】:2017-05-2919:44:54【问题描述】:我在firebase上的数据使用了许多具有字符串类型的字段,但实际上是枚举值(... 查看详情

请收下这些kotlin开发必知必会的编码实践方式(代码片段)

...人类可以理解的代码。—马丁·福勒目前来说,作为Kotlin开发者想必对一些常见的比较优秀的编程实践方式已经耳熟能详了吧;下面让我们,一起来巩固下日常开发中常见的Kotlin编码实践方式,温故而知新,尽... 查看详情

kotlin-反射

...,都能够调用它的任意一个方法和属性。常用API使用demoKotlin的反射需要集成org.jetbrains.kotlin:kotlin-reflect仓库,版本保持与kotlin一致。在Kotlin中,字节码对应的类是kotlin.reflect.KClass,因为Kotlin百分之百兼容Java,所以Kotlin中可以使用J... 查看详情

kotlin与java相互调用(代码片段)

目录一、Kotlin调用Java1.kotlin关键字转义2.kotlin可将数组传给java的可变数量参数3.kotlin获取对象的java类二、Java调用Kotlin1.java调用kotlin类的属性和方法2.java调用kotlin的顶级属性和顶级函数3.java调用生成指定类名的kotlin属性和函数4.jav... 查看详情

在 Kotlin 中使用 MVVM 实现两种方式的数据绑定 WebView

】在Kotlin中使用MVVM实现两种方式的数据绑定WebView【英文标题】:Implementingtwowaydata-bindingWebViewusingMVVMinKotlin【发布时间】:2020-05-0813:18:00【问题描述】:我正在尝试在我的所有应用程序中实现MVVM,我对此很陌生,所以我想通过我... 查看详情