202301-31 使用kotlin编写spring cloud微服务的过程 创建工程使用idea的springinitializr创建一个项目,语言选择kotlin,类型为gradle。根据需要选择依赖配置文件yml或者properties文件和java是完全一样的,这里不详细说明修改build.gradle.kts中的参数:plugins{//springboot版本id("org.springframework.boot")version"2.3.3.RELEASE"//自动依赖包版本管理id("io.spring.dependency-management")version"1.0.10.RELEASE"...}//springcloud版本extra["springCloudVers... 继续阅读 >
202301-31 Kotlin 和 Java 混合开发入门教程 目录一、前沿二、学习Kotlin前准备三、Kotlin语法简介优秀的表达式加强版switch模板字符串空指针异常不存在了编写单例类扩展方法运算符重载四、Kotlin与Java混合开发五、Kotlin与Java总结一、前沿如果你学习过其他的编程语言,你就会发现Java的语法很是哆嗦,可是我们为什么没有放弃Java这门编程语言呢?因为JVM是一个非常好的平台,而且Java程序员目前在中国所占的比重实在是太高了。这是历史包袱导致的。暂且... 继续阅读 >
202301-31 Kotlin lateinit与by lazy案例详解 lateinit和lazy是Kotlin中的两种不同的延迟初始化的实现lateinit只用于变量var,而lazy只用于常量vallazy应用于单例模式(if-null-then-init-else-return),而且当且仅当变量被第一次调用的时候,委托方法才会执行。lazy()是接受一个lambda并返回一个Lazy<T>实例的函数,返回的实例可以作为实现延迟属性的委托:第一次调用get()会执行已传递给lazy()的lambda表达式并记录结果,后续调用get()只是返回记录... 继续阅读 >
202301-31 Kotlin修饰符lateinit(延迟初始化)案例详解 Kotlin定义变量一般有如下写法lateinitvarname:Stringvarage:String?=null那么用lateinit修饰和下面那种有什么区别呢,我们来看一下这两行代码反编译成java代码是什么样子的。@NotNullpublicStringname;@NullableprivateStringage;@NotNullpublicfinalStringgetName(){Stringvar10000=this.name;if(this.name==null){Intrinsics.throwUninitializedProper... 继续阅读 >
202107-04 Android使用ViewBinding的详细步骤(Kotlin简易版) ViewBinding是什么2020年的3月份巨佬JakeWharton开源的butterknife被官宣停止维护,在github上说明Attention:Thistoolisnowdeprecated.Pleaseswitchtoviewbinding.Existingversionswillcontinuetowork,obviously,butonlycriticalbugfixesforintegrationwithAGPwillbeconsidered.Featuredevelopmentandgeneralbugfixeshavestopped.翻译过来就是,不维护了,推荐你使用ViewBinding... 继续阅读 >
202106-19 Kotlin中?和!!的区别详细对比 前言很多同学刚上手使用Kotlin知道它有针对JavaNullPointerException的管理,而在Kotlin中?和!!均是和NullPointerException有关系,可他们的区别到底是什么呢?为什么别人开发的项目中出现了好多"?",而我读起来却满脸问号。不懂就问百度呀,确实有人解释它们的区别,比如:这是输入"kotlin?和!!"搜索到的百度第一条答案,确实这位说的没错。不过我觉得对于一个刚接触KT(Kotlin)的新手来说,他恐怕需要有汉语八级才... 继续阅读 >
202104-27 Room Kotlin API的使用入门教程 Room是SQLite的封装,它使Android对数据库的操作变得非常简单,也是迄今为止我最喜欢的Jetpack库。在本文中我会告诉大家如何使用并且测试RoomKotlinAPI,同时在介绍过程中,我也会为大家分享其工作原理。我们将基于Roomwithaviewcodelab为大家讲解。这里我们会创建一个存储在数据库的词汇表,然后将它们显示到屏幕上,同时用户还可以向列表中添加单词。定义数据库表在我们的数据库中仅有一个表,就是保存词汇的表... 继续阅读 >
202103-30 Kotlin + Flow 实现Android 应用初始化任务启动库 特性Kotlin+Flow实现的Android应用初始化任务启动库。支持模块化,按模块加载任务可指定工作进程名称,main表示仅在主进程运行,all表示在所有进程运行,默认值all可指定任务仅在工作线程执行可指定任务仅在调试模式执行可指定任务在满足合规条件后执行可指定任务优先级,决定同模块内无依赖同步任务的执行顺序可指定依赖任务列表,能检测循环依赖使用Flow调度任务仅200多行代码,简单明了有耗时统计... 继续阅读 >
202103-14 Android kotlin使用注解实现防按钮连点功能的示例 SingleClick:@Retention(AnnotationRetention.RUNTIME)@Target(AnnotationTarget.FUNCTION)annotationclassSingleClick(//点击间隔时间,毫秒valvalue:Long=500)SingleClickAspect:importandroid.os.SystemClockimportorg.aspectj.lang.ProceedingJoinPointimportorg.aspectj.lang.annotation.Aroundimportorg.aspectj.lang.annotation.Aspectimportorg.aspectj.lang.annotation.Pointcutimportorg.aspectj.lan... 继续阅读 >
202103-05 kotlin java 混合代码 maven 打包实现 Kotlin简介Kotlin是一种针对Java平台的新编程语言。Kotlin简洁、安全、务实,并且专注于与Java代码的互操作性。它几乎可以用在现在Java使用的任何地方:服务端开发、Android应用等等。Kotlin可以很好地和所有现存的Java库和框架一起工作,而且性能和Java旗鼓相当。Kotlin特点Kotlin是静态类型语言并支持类型推导,允许维护正确性与性能的同时保持源代码的简洁。Kotlin支持面向对象和函数式两种编程风格,通过头等函数使更高级... 继续阅读 >
202012-02 Android结合kotlin使用coroutine的方法实例 最近入了Android坑,目前还处于疯狂学习的状态,所以很久都没有写博客了。今天记录一个小代码片段,在Android上使用coroutine的小例子。由于我自己是做一个记账软件来学习的,我用了gRPC,最开始我是使用线程来做网络请求的:thread{//网络请求代码runOnUiThread{//更新UI的代码}}今天把这一套全部重写成用coroutine。首先coroutine得有个调度器,英文叫做“Dispatchers”,有这么几个:Dispatchers.Main这里面的cor... 继续阅读 >
202010-10 教你一文搞懂Kotlin中的Jvm注解 JvmOverloads创建一个kotlin的类classStudent(valname:String,valsex:Int=1,valage:Int=18)可以看出来这个构造函数的参数是有默认值的,kotlin的特性对吧,我们在使用的时候可以方便的使用,比如:valstudent=Student("wuyue")valstudent2=Student("wuyue",age=18)但是这个特性如果你用java来调用你就是失败的了。注意看下面的方法调用是报错的,不能调,只能选择3个构造函数的方法。那我一定要让java也... 继续阅读 >
202010-10 Kotlin中的Checked Exception机制浅析 前言现在使用Kotlin的Android开发者已经越来越多了。这门语言从一开始的无人问津,到后来成为Android开发的一级语言,再到后来Google官宣的KotlinFirst。Kotlin正在被越来越多的开发者接受和认可。许多学习Kotlin的开发者之前都是学习过Java的,并且本身Kotlin就是一款基于JVM语言,因此不可避免地需要经常和Java进行比较。Kotlin的诸多特性,在熟悉Java的开发者看来,有些人很喜欢,有些人不喜欢。但即使是不喜欢的那些人,一旦... 继续阅读 >
202010-10 关于Kotlin中SAM转换的那些事 前言随着Kotlin1.4正式发布,关于SAM转换的一些问题就可以盖棺定论了。因为这里要讲的都是些旧的东西,所以这是一篇灌水文。Kotlin对SAM转换的支持情况在1.4发布之前,经常有新人在群里提出关于SAM转换的问题。为了说明这个问题,要分成几个情况来讨论。我们需要区分这个接口是Java接口还是Kotlin接口://这是JavainterfaceJavaSome{voidsome();}//这是KotlininterfaceKotlinSome{funsome()}以及区分在Java还... 继续阅读 >
202010-10 关于Kotlin的自动类型转换详解 前言Kotlin1.4正式版在好早以前就已经发布了。关于那些“看得见”的新特性,比如SAM转换、参数列表末尾的可选逗号什么的,已经有无数文章介绍过了。所以本文打算介绍一些可能是鲜为人知的、Kotlin官方团队偷偷塞进1.4的新特性。不过单独讲这些东西会显得文章太过单薄,于是我打算把其他相似的东西拉一起凑凑字数。本文使用的Kotlin版本为Kotlin1.4。本文要讲的东西看题目就知道了,Kotlin里自动类型转换(automatictype... 继续阅读 >
202010-09 Android Studio / IDEA kotlin 显示 var 真实类型操作 File—>Settings—>Editor—>InlayHints—>Kotlin勾选Showlocalvariabletypehints启用前启用后补充知识:AndroidStudio编译:Programtypealreadypresent:XXX解决方案情况1:个例build.gradle中dependencies{classpath'com.android.tools.build:gradle:3.1.1'//}改成dependencies{//目前最新版【2018年05月15日】classpath'com.android.tools.build:gradle:3.1.2'//}情况2:... 继续阅读 >