kotlin
嫩嫩的猿
一名萌新android开发程序猿。
展开
-
SpringBoot Kotlin Mybatis-plus 抽象类继承通用ServiceImpl报错cannot be cast to java.lang.Class
原因:ServiceImpl.class需要调用currentMapperClass()以及currentModelClass()这两个函数获取类型,kotlin多次层级继承后,导致这两个函数无法正确获取!解决办法,重新这两个方法@Suppress("UNCHECKED_CAST")abstract class MyBaseService<M : MyBaseMapper<T>,T> : ServiceImpl<M,T>() { override fun.原创 2021-06-09 18:05:43 · 2135 阅读 · 0 评论 -
kotlin 编译ksp创建文件codeGenerator.createNewFile卡住
我们一般在ksp创建文件需要在KSVisitorVoid里面的各个函数里创建,但是特殊情况需要生成其他类,如果没在KSVisitorVoid函数里面使用codeGenerator.createNewFile编译的时候就会卡主,从而产生异常:java.lang.OutOfMemoryError: Java heap space解决办法把codeGenerator.createNewFile逻辑代码放到Thread线程里面private fun generate() { threa原创 2021-06-03 11:01:52 · 465 阅读 · 2 评论 -
AndroidStudio Kotlin使用ksp
前提:如果你不了解ksp是什么的,可以去看看官网,类似kapt的增量注解处理插件,但是它是专门为kotlin而衍生的,但又完全兼容java代码的处理,速度上比kapt快,这篇文章可能要有一点kapt之类的经验ksp:官网废话不多说,开始吧!注意请使用新的项目来测试ksp,因为gradle脚本语言需要换成kotlin脚本1.settings.gradle更名为:settings.gradle.kts然后将里面的代码更改为include("app")rootProject.name="KspT.原创 2021-06-03 10:53:52 · 4001 阅读 · 10 评论 -
Android Kotlin 全局共享ViewModel
先上教程,后上思路,有兴趣可以看看后半部分,如果有其他更好的方法,或者这种方法有问题,欢迎指出,一起成长!这是原本在activity里面获取viewmodel的方法:val appUserViewModel:AppUserViewModel by viewModels() 我们不适用kotlin提供的,我们自己写一个: val appUserViewModel: = ViewModelLazy(AppUserViewModel::class, { viewModelStore }, {原创 2021-04-09 20:51:08 · 4471 阅读 · 1 评论 -
android 使用Kotlin operator 泛型属性委托配合DataBinding,实现2个委托类,全局binding通用
用kotlin好久了,最近发现上手学了一下android新的DataBinding特性(虽然已经出了好久了),但是每个对象都需要添加:set(value) { field = value notifyChange()}这就很烦,然后突然想到了可以使用委托这个kotlin的特性来配合完成统一实现:notifyChange()下面是代码首先新建一个抽象类,然后集成DataBinding的BaseObservable// 抽象类 继承baseObservable 因为自己建原创 2020-12-28 11:41:18 · 2517 阅读 · 4 评论 -
Android Kotlin 使用DataBinding调用静态方法时提示 not find databinding.ActivityMainBindingImpl
DataBinding是谷歌新推出的数据跟组件绑定的一个功能,本着尝鲜(虽然是发布以后好久才开始尝试使用的)的态度,学习了一下使用方法,但是跟着教程走到在xml里面使用静态方法时,kotlin就出问题了,提示找不到not find databinding.ActivityMainBindingImpl ,但是Kotlin的静态一般都是放在伴生对象(companion object)里面的,随意就报错了,下面是解决办法:class Test{ companion object{ @原创 2020-12-18 17:19:29 · 1760 阅读 · 1 评论 -
好看的Spring项目文档生成工具-MiApiDoc(1)
前言:其实我是个开发Android的,为什么回想着去写一个后台文档生成工具呢,这就要从很久以前说起…扯远了,其实主要的原因是,现在的Api文档生成工具好用的不好看,好看的要花钱,好看好用的不会用,所以就当诞生了现在自主开发的文档生成器:MiApiDocMiApiDoc主要用于Spring系列的项目,比如Springmvc,SpringBoot等等,理论上只要用到GetMapping、Post...原创 2020-04-23 18:16:51 · 809 阅读 · 2 评论 -
Kotlin 用好匿名函数,减少不必要的Interface
Java lamda从java8版本开始流行,大大简化了interface作为参数传递的写法,接触到便深深爱上他了,这是前言!Kotlin作为语法糖版的Java,很大程度上简化了java某些不必要的语法,从而使得很大程度上kotlin的开发速度会比java开发速度快。Kotlin调用java的方法,如果需要传interface作为参数的话,一般kotlin会让你使用kotlin转换的lamda...原创 2020-03-18 14:56:53 · 812 阅读 · 0 评论 -
Android RecyclerView 滑动到指定item(position)并加动画
其实Android RecyclerView组件已经自带了移动方法:RecyclerView.scrollToPosition(position) //没有动画效果但是这个方法没有动画效果,很生硬,直接就滑动过去了,下面来看一个有滑动动画效果的:val smoothScroller= object : androidx.recyclerview.widget.LinearSmoothScro...原创 2020-01-07 17:32:39 · 5036 阅读 · 3 评论 -
kotlin JAINSIP—搭建sip服务器(第一篇)
由于工作需求,本人无奈从android开发,临时调去研究sip服务器,后找到了一款sip服务器软件,经过不懈的努力,终于完成公司的sip业务需求!后来意外发现了JAINSIP,便来了兴趣,就研究了一下,小有所感,编写成博客,以便参考!其实sip服务器,就相当于一个socket服务器,但是有点差别。首先创建一个监听对象,监听sip客服端的连接:Sip.kotlinimport java.u...原创 2019-11-14 17:41:22 · 2181 阅读 · 7 评论 -
Android OkHttp4 RequestBody.create()过时解决办法 kotlin、java版本
前段时间,OKhttp3已升级到Okhttp4 ,编写语言由java过渡到kotlin,而以前okhttp3经常用到的post提交数据的:RequestBody.create() 已过时,并且换成了kotlin的新特性写法!okhttp3 post请求的代码(4.0版本已过时):val request:Request=Request .Builder() .post(Requ...原创 2019-11-07 14:55:30 · 32614 阅读 · 9 评论 -
Intellij IDEA 普通项目数据库一键生成Java、Kotlin实体类插件-SQLBean
由于本人开发普通JavaFx项目时,需要把数据库生成Bean类,但是IDEA自带的数据库工具不支持普通项目(或者是我自己不会用),所以自己开发了一个普通项目可以使用的数据库转JavaBean类的小工具-SQLBean。下载连接支持数据库类型:SQLite、SQLServer、MySQL、Oracle。以此记录!接下来,介绍如何使用:1、安装插件File-&gt;Settings-&gt...原创 2019-01-03 10:50:51 · 4124 阅读 · 0 评论 -
Kotlin 一键Sqlitel生成Kotlin实体类
由于创作需要,所以自己写了一个Sqlite一键转Kotlin实体类的代码,方便以后使用!以此记录!maven<!--sqlite 版本3.7.2 --> <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-...原创 2018-11-26 09:14:04 · 1676 阅读 · 0 评论 -
Java项目整合Mybatis+Sqlite 非Spring
由于博主最近开发应用,需要保存数据,于是想到了用sqlite。但是用Java 提供的方法来操作数据库,实在是有点繁琐,所以博主就百度了一下Mybatis整合Sqlite,但是遇到了一个大坑,所以以此记录!重点记录:sqlite驱动包的版本号当前使用的是3.7.2的,博主刚开始使用的是3.4.2的,可能是版本过低的原因,3.4.2的无法跟Mybits整合,后面换成了3.7.2的就好了,莫名奇妙...原创 2018-11-24 23:39:20 · 2286 阅读 · 0 评论 -
Kotlin如何在类里面创建main函数
kotlin和java可以相互调用,但是他两还是有语法区别的; 我们熟悉的java,他的main入口函数是创建在class里面的:public class Test1 { public static void main(String[] args){ Test1 test=new Test1(); }}而kotlin就跟java有所区别,我所知道的k...原创 2018-08-21 09:55:48 · 17998 阅读 · 5 评论