今天突然想研究下有些kotlin文件转为Java到底长什么样,好方便优化kotlin代码,搞了半天发现一个非常简单的AndroidStudio或者Intellijidea官方插件Kotlin,Kotlin是插件的名字,真是醉了;这里以AS为例,使用很简单:1.左边目录栏找到想要的转化的kotlin文件,选中,然后顶部Tools----->Kotlin------>ShowKotlinBytecode(明明下面有个DecompiletoJava,就是灰色的,用不起),如图:2.经过前面步骤,就会把kotlin文件转为字节码吗,如图:3.点击插件窗口左上角Decompile,就会反编译为Java文
文章目录前言一、@Preview二、@PreviewParameter1.单个参数2.多个参数前言阅读本文需要一定compose基础,如果没有请移步JetpackCompose入门详解(实时更新)本文介绍@Preview与@PreviewParameter注解的使用一、@Preview如果你构建了一个Compose项目,那么你的MainActivity中一定有一个默认的预览函数类似如下@ComposablefunGreeting(name:String){Text(text="Hello$name!")}@Preview(showBackground=true)@ComposablefunDe
一、MockK简介MockK是一款功能强大、易于使用的Kotlinmocking框架。在编写单元测试时,MockK能够帮助我们简化代码、提高测试覆盖率,并改善测试的可维护性。除了基本用法外,MockK还提供了许多额外的功能和灵活的用法,让我们能够更好地模拟对象行为、验证函数调用,并在测试中处理更复杂的场景。本文将深入探索MockK框架,介绍其基本用法以及一些额外的高级特性,助力开发者更优雅地编写Kotlin单元测试。二、基本用法在开始使用MockK之前,我们需要将其库添加到项目的依赖中。然后,我们可以使用mockk函数创建模拟对象,使用every函数来定义模拟对象的行为。例如,我们可以模拟一个
初级菜鸟,正在向中级菜鸟努力!刚刚接触Android开发,有好多东西都不太懂,又喜欢忘东西,干脆写博客记录一下吧。目录在activity中使用viewBinding在Fragment中使用viewBinding在Adapter中使用ViewBinding在布局文件中使用viewBindinginclude标签的viewBinding使用merge标签的viewBinding使用 kotlin-android-extensions插件已被废弃,现在推荐使用ViewBinding来进行替代。我的理解是,viewBinding是我们在完成创建一个layout的xml文件时自动生成的一个绑定类,该类以
Kotlin是后端开发的未来严格类型、命名参数、多范式语言您今天遇到的每个后端开发人员都会说他们使用JavaScript、Python、PHP或Ruby编写代码。近年来,您会遇到一小部分人转而使用Kotlin作为他们创建Web服务器的语言选择。由于我在学习Ktor,所以本文中的示例将使用Ktor进行说明。为什么选择kotlin?Kotlin是一种多范式编程语言。它支持来自其他各种语言的许多不同语言特性。如果缺少某个功能,在Kotlin中创建包含它的代码并不困难。例如,Haskell——一种纯函数式语言——使用.将两个函数组合在一起。在Kotlin中,您可以编写一个执行确切行为的函数。你可以在这
最近一直在了解关于Kotlin协程的知识,那最好的学习资料自然是官方提供的学习文档了,看了看后我就萌生了翻译官方文档的想法。前后花了要接近一个月时间,一共九篇文章,在这里也分享出来,希望对读者有所帮助。个人知识所限,有些翻译得不是太顺畅,也希望读者能提出意见协程官方文档:coroutines-guide挂起函数可以异步返回单个值,但如何返回多个异步计算值呢?这就是kotlinFlows(流)的用处了一、表示多个值可以使用集合在kotlin中表示多个值。例如,有一个函数foo(),它返回包含三个数字的List,然后使用forEach打印它们funfoo():List=listOf(1,2,3)f
原文:Kotlin集合对象的单条件和多条件排序-Stars-One的杂货小窝本文不是太难的东西,因为sortedWith之前没怎么用过,所以就记录下平常开发经常使用到List,Map等数据集合类型,也会经常遇到排序的问题,可以直接使用sortedBy或sortedByDescending排序多条件则是使用sortedWith,具体使用用例看见下文单条件排序方便起见,我们创建一个类Author,用来保存数据dataclassAuthor(valname:String,valage:Int,valheight:Int)valauthorList=listOf(Author("John",30,17
Kotlin的协程自推出以来,受到了越来越多Android开发者的追捧。另一方面由于它庞大的API,也将相当一部分开发者拒之门外。本篇试图从协程的几个重要概念入手,在复杂API中还原出它本来的面目,以全新的角度带读者走进Kotlin协程世界。什么是协程在很多有关协程的文章中,描述协程通常会用这样的一句描述——协程比线程更加轻量,是可取消的。这句话没有错,这两个都是协程的优点,但是并不是特点,它并没有解释协程是什么。那么什么是协程的特点呢,我觉得可以先用线程做个类比,解释一个概念最好的办法就是类比。我不打算使用科学严谨的描述,我想给线程一个我自己的定义——线程是一个可供CPU调度的执行单元,它有
1TAG经典写法 对于Android开发,当我们需要在类中打印Log时,通常在Java中会这么定义一个TAG:privatestaticfinalStringTAG="TestClass"; 或者不具体指定名字:privatestaticfinalStringTAG=TestClass.class.getSimpleName();那么,在Kotlin中 我们通常会这样定义:privatevalTAG=TestClass::class.java.simpleName 或者采用类似于Java的静态方式实现:companionobject{privat
文章目录一、List创建与元素获取二、安全获取集合元素1、getOrElse函数2、getOrNull函数三、List创建与元素获取代码示例四、MutableList可变列表集合五、修改MutableList集合的mutator函数1、添加元素运算符+=和删除元素运算符-=2、通过Lambda表达式筛选要删除的元素六、List集合遍历七、List通过解构一次性给多个元素赋值八、Set集合九、可变Set集合十、List与Set之间相互转换十一、数组类型十二、Map集合十三、获取Map值十四、Map遍历十五、可变Map集合一、List创建与元素获取Kotlin中的集合分为两类,只读集合和可变集合;