当前位置: 首页 > news >正文

Kotlin与Java写法的变更

目录

获取类的Java Class属性

类型检查

for循环

switch语句

if判断


获取类的Java Class属性

//Java
Intent intent = new Intent(this, MainActivity.class);//Kotlin
val intent = Intent(this, MainActivity::class.java)

类型检查

//Java
apple instanceof Fruit
!(apple instanceof Fruit)//Kotlin
apple is Fruit
apple !is Fruit

for循环

//Java
List<String> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {//do something
}//Kotlin 一般写法
for (element in sList) {//do something
}//Kotlin 不需要下标
list.forEach {//do something
}//Kotlin 需要下标
list.forEachIndexed { element, index ->//do something
}

switch语句

java

        int status = 0;int timeout = 0;switch(status){case STATUS_1:timeout = 100;break;case STATUS_2:timeout = 200;break;case STATUS_3:timeout = 300;break;default:timeout = 500;break;}

在Kotlin中,switch语句正式退出了历史舞台,取而代之的是更为强大的when表达式。注意语句(statement)和表达式(expression)的区别。通俗来讲,他们最大的区别是语句没有值,而表达式有值。因此在Kotlin中可以这样用:

val status = 0
fun getTime(): Int = when (status) {1 -> 1002 -> 2003 -> 300else -> 500
}

if判断

在Kotlin中,if变成了表达式,等同于 Java中三目运算符的替代写法:

fun getStatus(score:Int) = if(score >85) "优秀" else "其他"

相关文章:

  • 搭建自己的MQTT服务器,实现设备上云(Ubuntu+EMQX)
  • 合肥工业大学数据库实验报告
  • Ripro-V5 6.4最新版 不限域名无限搭建(授权激活文件)
  • springboot引入外部jar,package打包报错找不到程序包XXX
  • MySQL的表格去重,史上最简便的算法,一看就会
  • 汽车标定技术(六)--基于模型开发如何生成完整的A2L文件(2)
  • 11.8知识总结(web应用程序、手写web框架、Django框架等)
  • 2023.11.09 homework
  • 2. Spark报错,Task is Failed,errorMsg: FileNotFoundException xxxx
  • uniapp刻度尺的实现(swiper)滑动打分器
  • 20 VPN详解
  • Flutter导入安卓第三方库报错:Flutter Could not find method implementation() 的可能原因及解决办法
  • QSqlDatabase使用Sqlite
  • 【c趣编程】输入一个整数,判断其有几位
  • kafka-go操作kafka
  • ----------
  • 2019.2.20 c++ 知识梳理
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JS变量作用域
  • python_bomb----数据类型总结
  • Vue.js 移动端适配之 vw 解决方案
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • WebSocket使用
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 电商搜索引擎的架构设计和性能优化
  • 仿天猫超市收藏抛物线动画工具库
  • 分布式事物理论与实践
  • 分享一份非常强势的Android面试题
  • 浮动相关
  • 给Prometheus造假数据的方法
  • 技术胖1-4季视频复习— (看视频笔记)
  • 精彩代码 vue.js
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端_面试
  • 手机端车牌号码键盘的vue组件
  • 一起参Ember.js讨论、问答社区。
  • 移动端唤起键盘时取消position:fixed定位
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ionic入门之数据绑定显示-1
  • 回归生活:清理微信公众号
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​人工智能书单(数学基础篇)
  • ​什么是bug?bug的源头在哪里?
  • #Linux(权限管理)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #QT项目实战(天气预报)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (23)Linux的软硬连接
  • (c语言)strcpy函数用法
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (笔试题)分解质因式
  • (二)WCF的Binding模型
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (论文阅读40-45)图像描述1