Sealed class
1 其子类可以出现在定义 sealed class 的不同文件中,但不允许出现在与不同的 module 中,且需要保证 package 一致
2 sealed class 是抽象类,可以拥有抽象方法,无法直接实例化。
3 sealed class 的实例,…
报错写法: Named("key1")Injectlateinit var httpObject: HttpObjectNamed("key2")Injectlateinit var httpObject2: HttpObject正确写法需要使用field:Named(""): field:Named("key1")Injectlateinit var http…
all 与any
all 集合内的所有成员都满足某条件。any 集合内的任意一成员满足某条件
代码 fun main() {var a A("a",3)var a1 A("a",55)var b a.copy(b 20)var list arrayListOf(a,a1,b)println(list)println(list.all { a:A -> a.b 3 })println(…
我们要遍历一个数组、一个列表,经常会用到kotlin的 for in 语法,但是 for in 是不是有序的呢?forEach是不是有序的呢?这就需要看一下它们的本质了。
数组的 for in
// 调用:
val arr arrayOf(1, 2, 3)
for (ele in …
springboot启动报错:Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary
报错内容: Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary 解决方法: build --> …
kotlin支持面向对象编程,也有雷和对象的概念
要声明一个类需要使用class关键字
class Customer属性(Properties)
可以在类名后边添加(),在()里边声明属性
class Contact(val id: Int, var email: String)声明了不…
基于版本 api com.google.android.exoplayer:exoplayer:2.17.0xml中使用布局 <com.google.android.exoplayer2.ui.PlayerViewandroid:id"id/playerView"android:layout_width"match_parent"android:layout_height"match_parent"app:surface_t…
前提条件
安装并配置好Android Studio Android Studio Electric Eel | 2022.1.1 Patch 2 Build #AI-221.6008.13.2211.9619390, built on February 17, 2023 Runtime version: 11.0.150-b2043.56-9505619 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 11 …
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页:
🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂🦖…
在Kotlin中,循环语句有多种形式,包括while循环、do-while循环、for循环等。下面将逐个说明每种形式的使用。
while循环:
var n: Int 5
while (n > 0) {println("n$n")n--
}上述代码中,使用while循环打印n的值&…
参考文章
kotlin官网
kotlin github
Roman Elizarov 视频(基于1.3之前的,一些用法已经改变,但是主要看原理和思想)
Roman Elizarov 视频深入(基于1.3之前的,一些用法已经改变,但是主要看原理…
分享一下平时使用的简单转换
1.当后台需要json数组作为入参时: val body toRequestBody("name" to name, "version" to 1)这样使用我感觉还比较方便,下面看看toRequestBody的实现
fun toRequestBody(vararg params: Pair<Stri…
问题描述:
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter contextkotlin里重载的父类代码:
override fun onActivityResult(requestCode…
java中有个很好用的语法Try-with-resources kotlin中有没有类似的呢? 当然有啊! 在kotlin stdlib包中有个use方法,用法如下:
OutputStreamWriter(r.getOutputStream()).use {// by it value you can get your OutputStreamWriter…
目录静态变量和静态方法的定义静态变量和静态方法的使用kotlin中调用kotlin定义的静态变量和方法java中调用kotlin定义的静态变量和方法疑问怎么样可以使得java中调用kotlin的静态变量和方法像kotlin里那样更简便?静态变量和静态方法的定义
//Define.kt文件
class …
If 表达式
用if替代Java中的三元运算符
// 作为表达式
val max if (a > b) a else bif 的分支可以是代码块,最后的表达式作为该块的值:
val max if (a > b) {print("Choose a")a
} else {print("Choose b")b
}When 表达式…
泛型
定义泛型
class Box<E, T, W>(e: E, t: T, w: W) {var ee evar tt tvar ww w
}使用泛型:
//指定类型进行调用
val box: Box<Int, Double, String> Box(1, 1.0, "张飞")out和in
在java中
class Ani {}class Animal extends Ani …
哎,本来想翻译一波的,搜了下发现有人翻译过了,真是遗憾。 Roman Elizarov原文 简书网友译文 这篇文章是身为Team Lead for Kotlin libraries的Roman Elizarov写的。 不同网上火热的“十亿美元的错误”,作者认为Null是一个不错的发…
List
声明一个list并打印 var lists listOf("化学","物理","数学")for(list in lists){println(list)}打印list下标和值 var lists listOf("化学","物理","数学")for((i,e) in lists.withIndex()){println(&qu…
Class com.xxxx.Log was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1.
原因:在build.gradle中使用了1.5.30版本的kotlin插件,与第三方库中的kotlin插件版本不同&#…
后端idea项目运行时出现错误:Error:Kotlin: Module was compiled with an incompatible version of Kotlin,原因是项目中用的Kolin和idea中内置的Kotlin版本不一致。试过Invalidate Caches / Restart(清缓存重启)以及clean-->c…
const val INFO "ZZZ is Success Result"
fun main(){
var name: String? "zzz"
name null
name?.capitalize() //?问号的意思是如果name是null ,后面的方法不执行,如果name不是null,后面方法执行
var name: String? &q…
函数、高阶函数、Lambda、内联函数
函数
普通函数用法
//声明
//b:Int 10代表默认值
fun double(x: Int,b:Int 10): Int {return 2 * x
}
//普通调用,入参中的22会覆盖函数用的默认值10
val result double(1,22)
//具名调用,指定入参名称再赋值,不赋值的使用原…
吐槽:由于对IDEA开发工具不熟悉,所以光配置环境就花了大半天的时间 Kotlin声明变量Kotlin方法简介Kotlin List使用以及各种循环遍历Kotlin 调用 java Kotlin声明变量
局部变量和全局变量不同,全局变量必须赋初值 var a 0;//赋值后自动识别…
最近要在2个非直接依赖module使用单例,有一种注入依赖的方式可以,但是报了如下错误:
Cannot access <init>: it is private in
经过查阅资料,原来是依赖的单例类的构造函数不能使用private,这里做个记录&#…
data class Person(private val head: String,val hand: String
) {} val p Person("head", "hand")Log.d("Alex", "Person $p")
打印结果:
2023-06-11 22:30:54.764 21840-21840 Alex com.example…
定义类
示例:定义一个 Player 类
class Player {var name "jack"
}
通过 Show Kotlin Bytecode(按两下 Shift 键),然后点击 Compile 示例2:创建 Player 对象,并给 name 属性赋值
class Pla…
文章目录1. this 上下文withrunapply2. it 上下文letalso3. 其他好用的函数mapfilterreduceflatMapkotlin的标准函数有 run,let,with 等等,平时用的时候没有太在意他们之间的差异,现在来总结对比一下。 将他们分成 this 上下文和 …
问题描述:
override fun onClick(widget: View) {val intent Intent(AActivity.this, BActivity::class.java)startActivity(intent)
}上面这个在kotlin中会报以下错:
None of the following functions can be called with the arguments supplied.
&…
Kotlin之面向对象
类
定义:使用class关键字进行定义。 class Dog {}在kotlin类中,除非显式地声明延迟初始化,否则就得指定属性的默认值。在kotlin类中,成员默认是全局可见,而Java中,需要使用public才能达…
Kotlin version that is used for building with Gradle (1.4.0) differs from the one bundled into the IDE plugin (1.4.31) 如果项目中使用的kotlin版本与Android Studio中kotlin插件版本不一致就会弹出上面的警告 解决办法: 打开Android Studio :To…
kotlin使用Parcelize报错
Class ‘XXXData’ is not abstract and does not implement abstract member public abstract fun describeContents(): Int defined in android.os.Parcelable
解决办法
app/build.gradle 添加 id ‘kotlin-android-extensions’
plugins {id co…
idea 运行CtrlShiftF10
var <标识符> : <类型> <初始化值>
var a1 ///Int类型
var b:Int ///指定Int类型
var c:Int 1///指定Int类型1//类型后面加?表示可为空
var age: String? "23"
//抛出空指针异常
val ages age!!.toInt()
//不做处…
记录平常用到的ktx
fun Context.px2dip(px: Float): Float px / resources.displayMetrics.density 0.5f
fun Context.px2dip(px: Int): Int px2dip(px.toFloat()).toInt()/*** dp转px*/
fun Context.dip2px(dp: Float): Float applyDimension(TypedValue.COMPLEX_UNIT_DI…
参考官网对于解构声明的介绍:http://kotlinlang.org/docs/reference/multi-declarations.html 借助于解构声明的语法,可以很方便的将一个对象解构成几个变量,比如:
val (name, age) person
println(name)
println(age)
解构声明…
目录
1. Higher-Order Functions 高阶函数
2. function types 函数式类型
3. 实例化函数式类型 Instantiating a function type
4. 调用一个函数类型变量 Invoking a function type instance
5. Lambdas表达式和匿名函数Anonymous Functions
(1)La…
整理关键语法列表如下:
https://developer.android.com/kotlin/interop?hlzh-cn官方指导链接 语法形式 说明 println("count ${countnum}")字符串里取值运算 val count 2 var sum 0 类型自动推导 val 定义只读变量,优先 var定义可变变量…
Android Studio 前言
最近更新完 Android Studio 之后,发现莫名其妙的经常很卡。通过任务管理器查看Studio竟然一直持续CPU使用率在 95% 以上, What the Fk!!
什么情况啊!
首先确认,当前Studio没有运行下…
package Stage4fun main() {val list listOf(1,2,3,4,5,6,7,8,9)//第一种方式 for()println("第一种方式遍历元素:")for (i in list){print("元素:$i")}println()//第二种方式forEachprintln("第二种方式遍历元素:…
前言 ‘break’ and ‘continue’ are only allowed inside a loop “break”和“continue”只能在循环中使用,forEach实际上是一个匿名函数 只有是循环才会有以下说法:
return. 默认情况下,从最近的封闭函数或匿名函数返回 -By default ret…
Kotlin只截取Float小数点后数值DecimalFormat import java.text.DecimalFormatfun main(args: Array<String>) {val pi 3.141516Fvar p pi - pi.toInt()println(p)val decimalFormat DecimalFormat("00.0000")val format decimalFormat.format(p)println(…
在Kotlin中,你可以使用class关键字来定义一个类。以下是一个简单的例子:
class MyClass {// class body} 这个例子定义了一个名为MyClass的类。你可以在类体中定义属性和方法。 如果你想定义一个带有属性的类,你可以这样做:
cla…
1.可变list集合
完整写法
var list:MutableList<String> mutableListOf<String>("java","kotlin","c","c")
省略写法
var list mutableListOf("java","kotlin","c","c")fun ma…
?.
fun main() {var name:String?"kotlin" //name是一个可空类型,发出广播,调用的地方必须补救措施namenullvar r name?.capitalize() //?. 如果namenull,那么?.的将不执行,就不会引发空指针异常prin…
const val INFO"kotlin java"
fun main() {val indexOfINFO.indexOf(j)//左包右不包//0,indexOf等价于0 until indexOf ktolin常用0 until indexOf 方式println(INFO.substring(0,indexOf))println(INFO.substring(0 until indexOf))}执行结果
Kotlin提供了几个作用域函数来优化和简化代码的结构。
本文将对比分析 apply, let, 和 with 三个函数。
一、对比分析:
apply:在其接收者的上下文中执行代码块,并返回接收者对象。let:在其接收者的上下文中执行代码块ÿ…
函数声明
声明函数要用用 fun 关键字,就像声明类要用 class 关键字一样 「函数参数」的「参数类型」是在「参数名」的右边 函数的「返回值」在「函数参数」右边使用 : 分隔,没有返回值时可以省略
声明没有返回值的函数: fun main(){println…
变量
Kotlin和Java一样是静态语言,所有表达式类型在编译期已经确定,public为默认可见性
变量由 var/val变量名[: 数据类型][?][ 值] 组成,如
var a 1var b: Int
b 3var s: String? nullval language arrayListOf("java")…
原因应该是一次性修改了大量的文件, SpringBoot项目启动Kotlin报错, Build Project也是同样的结果, 报错如下 Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.1.13. Build-&…
Android NDK开发详解之编写C/C代码中的原生 API 使用原生 APICore C/CC 库C 库日志记录跟踪记录zlib 压缩 图形OpenGL ES 1.0 - 3.2EGLVulkan位图同步 API 相机媒体libmediandkOpenMAX AL Android 原生应用 API硬件缓冲区 API 音频AAudioOpenSL ES 本部分将讨论如何使用 NDK 提…
继承
在 java 里如果一个类没有被 final 关键字修饰,那么它都是可以被继承的。而在 kotlin 中,类默认都是封闭的,要让某个类开放继承,必须使用 open 关键字修饰它,否则会编译报错。此外在子类中,如果要复写…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)开发一…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…
1、超类
Any Kotlin 中所有类的默认超类,有三个方法:equals()、 hashCode() 与 toString()
class Example // 从 Any 隐式继承
2、继承
默认情况下,Kotlin 类是最终(final)的——它们不能被继承
open 关键字标记类…
首先,我们用kotlin写一个类、一个接口,再看我们怎么使用它们:
open class Kotlin20 {open fun add(info: String) { println("println add info$info") }open fun del(info: String) { println("println dell info$info"…
在JNI中,本地代码(C/C)中修改了Java对象的变量,并且将其传递回Java端,那么Java端会看到变量的修改,尝试以下两种方式进行修改: 添加native方法 data class MyData(var key:Int,var value:String…
我们都知道字节码是java或者kotlin源码编译后的文件,后缀名是".class",如果直接用普通文本编辑器打开是会显示乱码的,如果用Android Studio 直接打开则会自动反编译成java代码;那么如何才能正确查看到源码编译后的字节码…
Lambda
使用 { } 定义Lamba,调用run运行
run { println(1) }更常用的为 { 参数 -> 操作 },还可以存储到变量中,把变量作为普通函数对待
val sum { x: Int, y: Int -> x y }
println(sum(1, 2))maxBy()接收一个Lambda,传…
1,关键字by修饰类,表示类委托
interface Animation{fun eat()
}//动态代理
class Dog:Animation{override fun eat() {println("dog eat oligarch")}
}class DogProxy:Animation by Dog(){}
2,关键字by修饰变量,实现属性委托
var name:String by NameDelegate()…
问题描述:
在kotlin类中定义Bean,需要实现Parcelable相关代码,如果没有实现,则可以根据提示点击"Add Parcelable Implementation"自动生成代码,但是发现出现代码错误“Abstract member cannot be accessed directly”&…
31.Can Place Flowers
题目大意
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1&…
一、泛型及泛型约束 kotlin中的泛型,和java中思维大体是相同的,但又有些区别 class Data<T>(val t:T)//泛型类fun <T> play(i:Int){ //泛型方法println(i)}interface onclick<T>{ //泛型接口fun click(t:T)} val data Data<String…
1.set集合定义,不允许重复元素打印
package Stage4fun main() {//set集合定义,不允许重复元素打印// val set : Set<String> setOf<String>("java","kotlin","c","java","c")val set s…
ASFP Study
史上第一款AOSP开发的IDE (支持Java/Kotlin/C/Jni/Native/Shell/Python)
类似于Android Studio,可用于开发Android系统源码。
Android studio for platform,简称asfp(爱上富婆)。
背景&下载&使用
背景
由…
自古逢秋悲寂寥,我言秋日胜春朝 二叉树结构说明
本博客使用树节点结构,如下所示:
Kotlin 版本
class TreeNode(var value: String, var leftNode: TreeNode? null, var rightNode: TreeNode? null)Java 版本
class TreeNode(){public…
概述
本文记录在使用Spring Cloud微服务开发时遇到的一个反序列化问题,RPC/HTTP框架使用的是Feign,JSON序列化反序列化工具是Jackson。
问题
测试环境的ELK告警日志如下:
- [43f42bf7] 500 Server Error for HTTP POST "/api/open/d…
文章目录 标准函数withrunApply定义静态方法注解顶层方法标准函数
with
with 的作用是可以在连续调用同一对象的多个方法时让代码变得更加精简
val result = with(obj){//这里是obj的上下文"value" //with 函数的返回值
}看个例子,例如有一个水果列表,现在我们想…
Kotlin let run with apply also 关键字
参考官网学习资料 https://play.kotlinlang.org/byExample/06_scope_functions/
一、 let
Kotlin 标准库函数 let 可用于范围界定和空检查。当在对象上调用时,let 执行给定的代码块并返回其最后一个表达式的结果。该对象可…
报错信息:
ARouter::Compiler An exception is encountered, [These no module name, at build.gradle, like :android {defaultConfig {...javaCompileOptions {annotationProcessorOptions {arguments [AROUTER_MODULE_NAME: project.getName()]}}}}]Execution …
问题: java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()’ is inaccessible to class androidx.recyclerview.widget.RecyclerView java.lang.IllegalAccessError: Method boolean android.view.View.awakenScrollBars() is i…
const val INFO"kotlin,java,c,c#"
fun main() {//list自动类型推断成listList<String>val listINFO.split(",")//直接输出list集合,不解构println("直接输出list的集合元素:$list")//类比c有解构,ktoli…
module was compiled with an incompatible version of kotlin
简要说明
不同模块使用不一致的kotlin版本编译,导致最后merge的时候版本冲突出错了
解决方案
临时解决 build->rebuild project 永久解决 项目不使用kotlin,关闭插件kotlin enable-…
Android出现Could not resolve all files for configuration ‘:app:releaseRuntimeClasspath’.的解决方法
将build.gradle里的
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"改为
implementation "org.jetbrains.kotlin:kotl…
我们来定义一个接口,new一个Kotlin Interface,名字为IMan
interface IMan {fun joyride()
}然后新建一个Man类,实现刚才的IMan接口
class Man:IMan {override fun joyride(){println("我在飙车")}
}编写测试代码
fun main(args:…
文章目录1 ASCII编码2 凯撒加密3 Byte和bit1 ASCII编码 //获取字符ascii编码val c aval value: Int c.toInt()println(value)//获取字符串asciival str "I love you"//遍历获取每一个字符的ascii编码val array str.toCharArray()for (ch in array) {
// p…
Kotlin函数作为参数指向不同逻辑(二) fun sum(): (Int, Int) -> Int {return { a, b -> (a b) }
}fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) }
}fun math(a: Int, b: Int, foo: (Int, Int) -> Int): Int {ret…
本文主要讲解if语句,kotlin的if语句是可以有返回值的,就是if语句的最后一句话就是返回值。
/*** You can edit, run, and share this code.* play.kotlinlang.org*/fun main() {println("Hello, world!!!") val largelargerNumber(5,9)
prin…
概述
测试环境爆出ERROR告警日志java.lang.IllegalStateException: Didnt find report for specified language,登录测试环境ELK查到如下具体的报错堆栈日志:
java.lang.IllegalStateException: Didnt find report for specified language
at com.aba.…
枚举
声明只有值的枚举
enum class Color {RED, GREEN, BLUE
}此外还可以增加属性和方法,如果需要在枚举类中定义方法,要使用分号把枚举常量列表和方法定义分开,这也是Kotlin唯一必须使用分号的地方
enum class Color(val r: Int, val g: …
前言
省略
代码
class MyHashMap {data class Node(var key: Int, var value: Int, var next: Node? null)// 负载因子private var loadFactor 0.75// 当前大小private var size 0private var table Array<Node?>(16) {null}// 增加fun put(key: Int, value: In…
声明变量
在 Kotlin 中定义一个变量,通过关键字 var 开始。然后是变量名,在“:”后紧跟变量类型。 示例1:声明一个 int 类型的变量
var num:Int 1
示例2:声明一个 String 类型的变量
var str:String "Hello world&quo…
在 Android 编程中,类型转换是一项常见的操作。为了使这一过程更加流畅和安全,Kotlin 提供了 as 关键字。本文将深入探讨 as 关键字的用法和最佳实践。
一、as 关键字的基本概念 🚀
as 关键字在 Kotlin 中用于显式类型转换。它将一个表达式…
一、构造器
//一个User类
class User {
}//添加参数的主构造器
class User(name: String) {
}//加val、var 声明为类的属性
class User(val name: String) {
}//init代码块可以添加初始化逻辑
class User(val name: String) {init {...}
}
//次构造器
class User(val name: St…
?
对于如下Java函数,可传递null或者值为null的String
int strLen(String s) {return s.length();
}而在Kotlin中,如下函数不能传递null或值为null的String,否则会在编译期报错,保证了永远不会在运行时报空指针异常
fun strLen…
Hello word 前言:上次学习安卓,学了Java开发,简单的搭了几个安卓界面。这次要学习Kotlin语言,然后开发安卓,趁着还年轻,学点新东西,坚持~ 未来的你会感谢现在努力的你~ 主要学习资料:…
1、语法
data 修饰的类
data class User(val name: String, val age: Int)
编译器自动从主构造函数中声明的所有属性导出以下成员:
.equals()/.hashCode() 对.toString() 格式是 "User(nameJohn, age42)".componentN() 按声明顺序对应于所有属性.cop…
by lazy 的作用
by 是在kotlin中代表者委托, lazy 懒加载
by lazy 就是委托延时处理
下面写一个demo说明下
新建一个类
class ExportController {fun getName(): String? {return "name";}fun getAge(): Int {return 18;}}
在mian中如下
class Ma…
先上代码:
object LiveDataBusKT {// private val bus: MutableMap<String, BusMutableLiveData<Any>> by lazy { HashMap() }private val MAX_BUS_COUNT 100 // 最大允许的 bus 对象数量private val bus: LruCache<String, BusMutableLiveData…
类可以有类型参数
class Box<T>(t: T) {var value t
}要创建类实例,需提供类型参数
val box: Box<Int> Box<Int>(1)如果类型可以被推断出来,可以省略
val box Box(1)通配符
在JAVA泛型中有通配符?、? extends E、? super E&…
kotlin 中有类型检测与类型转换章节,今天回顾看到这里记录下 详细的地址如下
类型检测与类型转换 Kotlin 官方文档 中文版
as 的功能是类型转换
val x: String y as String
这个y就是String 类型,不过,这个写法可能存在问题,…
构造函数
Java
final File file new File("file.txt");Kotlin
val file File("file.txt")类
Java
public final class User {
}Kotlin
class User公开类
Java
public class User {
}Kotlin
open class User属性类
Java
final class User {pri…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听
前言
在前两篇文章中讲解了关于插件开发的基础知识&…
1、声明
class 关键字声明类
类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构成;类头与类体都是可选的; 如果一个类没有类体,可以省略花括号
class Person { /*……*/ }// 没有声明任何…
现象
kotlin DSL(build.rgadle.kts)项目引入openCV sdk 编译提示Plugin [id: com.android.application, version: 8.2.1...错误
Plugin [id: com.android.application, version: 8.2.1, apply: false] was not found in any of the following sources:* Try:
> Run with -…
data class 介绍
kotlin 中 data class 是一种持有数据的特殊类
编译器自动从主构造函数中声明的所有属性导出以下成员: .equals()/.hashCode() 对 .toString() 格式是 "User(nameJohn, age42)" .componentN() 函数 按声明顺序对应于所有属性。…
一、 Flow 与 Channel 的相互转换
1.1 Flow 转换为 Channel
1.1.1 ChannelFlow
InternalCoroutinesApi
public abstract class ChannelFlow<T>(// upstream contextJvmField public val context: CoroutineContext,// buffer capacity between upstream and downstrea…
Kotlin for loop: in、 until、 step、 downTo fun loop1() {for (i in 0..5) {print("$i ")}println("\n1-end\n")
}fun loop2() {for (i in 0 until 5) {print("$i ")}println("\n2-end\n")
}fun loop3() {for (i in 0 until (5)) {…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…
区间运算符
闭区间运算符
a不能大于b var rang 1..9for(num in rang){print("${num}") //输出123456789}半开区间运算符
半开区间运算符a until b 用于定义一个从a~b(包括a边界值,但不包含b边界值)的所有值的区间,a不能大于b var rang 1 …
在java中使用final声明常量在kotlin中使用const val声明常量
常量在编译为字节码后会直接把调用常量的地方直接替换为常量值,示例如下:
public class ConstDemo {public static final String NAME "Even";private static final int ID 100…
作者:Yocn 首先一个报错来作为开篇:
Caused by androidx.fragment.app.Fragment$InstantiationException
Unable to instantiate fragment xxx: could not find Fragment constructor这个报错原因就是Fragment如果重载了有参的构造方法,没有…
文章目录集合操作函数 和 序列序列中间和末端操作创建序列总结集合操作函数 和 序列
在了解 Kotlin 惰性集合之前,先看一下 Koltin 标注库中的一些集合操作函数。
定义一个数据模型 Person 和 Book 类:
data class Person(val name: String, val age:…
1 变量声明
var a : Int // 声明整数类型变量
var b : Int 1 // 声明整数类型变量, 同时赋初值为1
var c 1 // 声明整数类型变量, 同时赋初值为1
val d 1 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名规范如下。
变量名可以由字母、数字、下划线(_&a…
1.继承与重写的Open关键字 open class Product(val name:String
) {fun description() "Product: $name"open fun load() "Nothing .."}class LuxuryProduct:Product("Luxury"){//继承需要调用 父类的主构造函数override fun load(): String {…
文章目录基本语法1.1函数头学习1.2具名函数参数1.3反引号中函数名特点1.4隐式返回1.4.1分开写函数(无参)1.4.2合并写函数(有参数)1.5it关键字1.6匿名函数的类型推断基本语法
1.1函数头学习
fun main() {method01("Tom"…
1.可以直接改环境。 或者手动添加,项目gradle:
buildscript {ext.kotlin_version 1.3.50dependencies {...classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"...// NOTE: Do not place your application dependencies…
文章目录效果图关键代码源码地址效果图 越来越多的APP采用底部五个TAB页的布局,因此谷歌官方直接提供了现成的组件BottomNavigationView,需要结合Fragment来使用,为每个TAB页添加Fragment实例来实现各自的逻辑。
关键代码
class MainActivi…
Android BitmapDrawable.bitmap与BitmapFactory.decodeResource获取不到原始图像素级真实宽高,Kotlin 当一个图片放在ImageView里面后,用以下方式获取图的宽高: val bmp1 (this.drawable as BitmapDrawable).bitmapLog.d("fly", &…
Kotlin中的选择控制有两种方式:if和when
if选择语句
Kotlin的if语句和Java中的类似:
fun max(a: Int, b: Int): Int {return if (a > b) a else b
}只有一行语句可以省略大括号,返回类型可自动推导出来,所以最后可以写成
f…
函数头
fun main() {getMethod("zhangsan",22)
}//kotlin语言默认是public,kotlin更规范,先有输入( getMethod(name:String,age:Int))再有输出(Int[返回值])
private fun getMethod(name:String,age:Int): Int{println("我叫…
在JNI中修改ByteArray类型的参数并返回: 添加native方法 class TestLib {companion object{init {System.loadLibrary("jnitest")}}external fun modifyByteArray(data:ByteArray):ByteArray
}
var data byteArrayOf(1,2,3,4,5,6)
Log.i(TAG,"in …
一、概念 对于每一个由协程构建器开启的协程,都会返回一个 Job 实例用来管理协程的生命周期。launch()直接返回 Job实现,async() 返回的 Deferred 实现了 Job接口。 Job public fun start(): Boolean public fun cancel(cause: CancellationException? …
类定义
使用Java定义一个Person类,代码如下:
public class Person {private final String name;private final int age;public Person() { }...
}使用Kotlin来定义这个类
class Person {var name ""var age 0fun printInfo() {prin…
Kotlin学习之旅第十天
今天的主题是 - - Unit Test with Kotlin
前言
Kotlin学习之旅(D1)-学习计划&基本语法
Kotlin学习之旅(D2)-基本语法
Kotlin学习之旅(D3)-类与继承
Kotlin学习之旅(D4)-函数与Lambda表达式
Kotlin学习之旅(D5)-高级语法
Kotlin学习之旅(D6)-K…
操作符优先级表 eg:重载操作符
data class Counter(var index : Int)
// 实现重载必须使用operator修饰符修饰一个从重载操作符函数
operator fun Counter.plus(increment : Int) :Counter {return Counter(index increment)
}使用
val counter Counter(1)
val …
1.匿名函数简单举例
fun main() {//第一种写法,count()获取字符长度val info"kotlin".count()println(info)//第二种写法,使用匿名函数val len"kotlin".count(){//it代表字符串中 k o t l i n 的字符itl}println(len)
}执行结果 2.隐式返回
…
大家都知道ARouter要跳转目标Activity需要两步:
1.在Activity上添加Route注解
// Add annotations on pages that support routing (required)
// The path here needs to pay attention to need at least two levels : /xx/xx
Route(path "/test/activity&…
1,typealias 声明一个类型别名。
样例:
typealias MyBeanItemBean
data class ItemBean(val title: String, val intent: Intent)
val beanMyBean("11", Intent())
实现了将ItemBean数据模型取了一个别名MyBean,后续我们可以像…
算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin const val THRESHOLD 0.6f //距离小于这个点将被剔除。data class Point(val x: Float, val y: Float)fun removeNearbyPoint(points: List<Point>…
kotlin 中 sum 的作用:
计算一个列表里面数字的总和:
val numbers listOf(1, 2, 3, 4, 5)
val sum numbers.sum()
println("The sum is: $sum") // 打印结果: The sum is: 15
kotlin中sumOf的作用:
也是计算一个列表里面数字…
问题:
在kotlinjava混合项目中接入Hilt后编译时报错如下:
Execution failed for task :app:kaptDebugKotlin.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction> ja…
我们来计算一个半径为2.0f的圆的周长
fun main(args: Array<String>) {println(getCircleArea(3.14f,2.0f))
}//获取长方形面积
fun getRectArea(x:Float,y:Float):Float{return x*y
}
//根据半径获取圆周长
fun getCircleArea(PI:Float,r:Float):Float{return 2*PI*r
}…
文章目录函数布尔值进一步了解函数函数的声明命令行交互式终端下载配置环境变量使用命令行完成刚才的运算函数
打印一个菱形
fun main(args: Array<String>) {print1star()print3star()print5star()print3star()print1star()
}
fun print1star(){println(" *&quo…
字符串
substring字符串截取
支持inRange类型的参数,表示的是一个整数范围的类型until创建的范围不包括上限值 const val NAME "Jimmys friend"fun main() {val index NAME.indexOf("\")println(index)//until创建的范围不包括上限值val st…
源代码:RxKotlinRetrofitDemo 1.定义统一的返回结果类 ResultData data class ResultData<T>(var code: Int, var message: String, var data: T?) code:接口返回数据状态码(状态码与后台人员协商),0代表成功&a…
原文:Kotlin for Android Development: Heavyweight Language or Hopeless Hype? 作者:Jose Luis Franconetti 翻译:陈云龙 在 2017 Google I/O 大会的 Keynote 演讲中,我们了解到,Kotlin 编程语言将在 Android 上正…
Android 15 面向开发者引入了一些出色的新功能和 API。以下部分总结了这些功能,以帮助您开始使用相关 API。
如需查看新增、修改和移除的 API 的详细列表,请参阅 API 差异报告。如需详细了解新的 API,请访问 Android API 参考文档࿰…
kotlin中使用myibatis-plus的lambdaQuery的问题
代码:lambdaQuery().eq(User::username, username).one()报错:org.apache.ibatis.reflection.ReflectionException: Error parsing property name register$lambda$0. Didnt start with is, get or set.解…
基本语法
fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")}
Variables
只赋值一次用val read-only variables with val
赋值多次用var mutable variables with var
Standard output
printin() and print() functions
String templ…
1.继承系统的AccessibilityService服务,实现自己的辅助功能服务
class MyAccessibilityService: AccessibilityService(){companion object {const val TAG "MyAccessibilityService"}override fun onAccessibilityEvent(event: AccessibilityEvent) {v…
文章目录ifwhenfor循环if
Kotlin 中 if 语句相比于 Java 有一个额外功能,它是可以有返回值的,返回值就是 if 语句每一个条件中最后一行代码的返回值。例如下面函数的作用是返回较大的一个数
fun largeNumber(num1:Int,num2:Int):Int {return if(num1&g…
在kotlin中可以直接中文定义函数,使用反引号进行调用 eg:
fun main() {2023年8月9日定义的函数(5)
}private fun 2023年8月9日定义的函数(num:Int){println("反引号的用法$num")
}执行结果
在Java中is,in可以定义方法,但是在kotlin中is,in是…
1.理解:在一个函数中有一个参数a,这个参数a又属于一个函数,a即时参数又是函数 2.用kotlin实现登录 /*** You can edit, run, and share this code.* play.kotlinlang.org*/
fun main() {//调用传参//普通参数传入即可,针对在调用函数中的参数函数传入使用…
1.常规匿名函数写法: 如果使用了":",必须给定参数类型和 返回值类型如下: val meThod:()->Int{}2.匿名函数“”,返回类型推断 使用类型推断“”,根据返回值的类型推断
fun main() {/** 常规匿名函数写法:…
针对上篇传入函数参数我们也可以重新定义一个函数,然后在main中调用时传入函数对象 lambda属于函数类型的对象,需要把普通函数变成函数类型的对象(函数引用),使用“::”
/*** You can edit, ru…
以下是一些常用的 String 方法示例:
1.获取字符串长度:
val str "Hello, Kotlin"
val length str.length2.字符串比较:
val str1 "apple"
val str2 "banana"
val compareResult str1.compareTo(str2)3…
constructor 构造器一般情况下可以简化为主构造器 即: class A constructor(参数) : 父类 (参数) 也可以在构造器上直接声明属性constructor ( var name) 这样可以全局访问
init { } 将和成员变量一起初始化
data class 可以简化一些bean类 比如get / set ,自动生成copy 函数…
91. 阐述Kotlin中性能优化之局部函数 ?就是像正常定义普通函数的语法一样,在其他函数体内部声明该函数。这些被称为局部函数,它们能访问到外部函数的作用域。 fun someMath(a: Int): Int { fun sumSquare(b: Int) = (a + b) * (a + b) return sumSquare(1) +…
书接上回:Android Kotlin知识汇总(三)Kotlin 协程
协程的并发问题
在一个协程中,循环创建10个子协程且单独运行各自Default线程中,并让每个子协程对变量 i 进行1000次自增操作。示例如下:
fun main() …
字符串有整形相关的转换,尽量使用toIntOrNull()函数
fun main() {//String转Intvar num1"666"println(num1.toInt())//Double不能自动转换为Int,会崩溃,解决崩溃如下:toIntOrNull()如果转换失败会转为nullv…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
解锁编程的新契机:深入探讨Kotlin Symbol Processor (KSP)的编写
1. 引言
随着软件开发领域的不断发展,新的工具和技术不断涌现,以满足开发者在构建高效、可维护和创新性的代码方面的需求。Kotlin Symbol Processor(KSP…
三、面向对象
1、继承
1.1 open改变类的继承属性
在kotlin设计时默认所有的非抽象类是无法被继承的,如果想要使得一个非抽象类可以被继承,我们需要使用open关键字。
open class Person {var name "";var age 0;fun eat() {println(name …
for循环
在下面代码中1…10表示的是1到10,两边都是闭包,输出12345678910 for (i in 1..10) println(i)加上花括号也支持 for (i: Int in 1..10) {println(i)}另外,当对整数进行for循环时,Kotlin还提供了一个step函数来定义迭代的…
Android Glide in RecyclerView,only load visible item when page return,Kotlin
base on this article:
Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片,Kotlin_zhangphil的博客…
https://blog.csdn.net/fitaotao/article/details/84314043
使用DiffUtil:DiffUtil是Android Support Library中的一个工具类,可以帮助计算新旧数据集的差异并高效更新RecyclerView的数据。通过使用DiffUtil,可以避免不必要的数据刷新和界面…
Kotlin函数作为参数指向不同逻辑 fun sum(): (Int, Int) -> Int {return { a, b -> (a b) }
}fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) }
}fun main(args: Array<String>) {var math: (Int, Int) -> Intmath sum()println(m…
原文:Optimally tackling covariate shift in RKHS-based nonparametric regression. The Annals of Statistics, 51(2), pp.738-761, 2023. 原文作者:Cong Ma, Reese Pathak, Martin J. Wainwright 论文解读者:赵进 编者按: …
升级新版Android Studio 2022.3.1后发现引入maven报错:
1、报错的日志 ^ Unexpected tokens (use ‘;’ to separate expressions on the same line)。
2、解决问题
2.1 新版本的引入方式:
repositories {maven { url uri("https://maven.aliy…
函数、变量、字符串模板、类 函数变量字符串模板类 函数
函数组成为 fun 函数名(参数名: 参数类型, …): 返回值{}
fun max(a: Int, b: Int): Int {return if (a > b) a else b
}上面称为代码块函数体,当函数体由单个表达式构成时,可简化为表达式函…
与一般的结构不同,参考了LinkedHashMap,将经常访问的放在最后,linkedLast() 相关题目,https://leetcode.cn/problems/lru-cache/
class MyLRUCache(private val maxSize: Int) {class Node(val key: Int, var value: Int, var be…
向其他语言一样,kotlin也有循环和逻辑控制
条件判断(Conditional expressions)
kotlin使用if和when来进行条件判断 如果纠结选择if还是when,建议使用when,因为它更能提高程序的健壮性 if
普通写法
fun main() {val…
代码:
fun main() {var a 1var b 2a b.apply {b aprintln("$b")println("$this")}println("$a $b")
}打印结果:
1
2
2 1原理分析:
/*** Calls the specified function [block] with this value as its r…
对象:info TODO apply--info.apply{this} 1、apply函数返回类型,都是info本身,此条和also一模一样 2、apply函数的匿名函数里面持有的是thisinfo本身 此条和run一模一样
TODO let--info.let{it} 1、let函数返回类型,是根据匿名函…
原文地址
为了保证概念的严谨性,翻译时保留了英文原文。
In this post, we explore cooperative multitasking and the async/await feature of Rust. We take a detailed look at how async/await works in Rust, including the design of the Future trait, the…
这是一个使用 Perl 和爬虫ip服务器来爬取图书网站信息采集的示例代码。以下每行代码的中文解释: use LWP::UserAgent;
use HTTP::Proxy;
use HTML::TreeBuilder;# 创建爬虫ip服务器
my $proxy HTTP::Proxy->new(host > "www.duoip.cn",port > 8…
前两天下了一个demo,运行时候报了一个这样的错,特此记录一下。 先看下报的错。
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.5.21.
Searched in the following…
Kotlin语言基础-变量和数据类型
一、Kotlin的变量
Kotlin变量有两种形式var(variable)和val(value,取值) val定义只读量,一旦创建,其值不会发生变化 例:
val a 23那么对于a对应的值就只能是23,不会发生变化。如何试图对a重新赋…
问题: 在IntelliJ IDEA中运行Gradle服务的单元测试时报错
错误提示: Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:test’. No tests found for given includes: [DemoTest.queryStri…
前面粗咯的讲了类,这篇详细介绍类及相关的概念
定义类使用关键字class
class Person { /*...*/ }类声明由类名、类头(指定其类型参数、主构造函数等)和由{}包围的类体组成。类头和类体都是可选的;如果类没有体,可以省…
kotlin中的所有类都有一个共同的超类Any
class Example // 没有声明,但是默认实现Any类Any有三个方法:equals()、hashCode()和toString()。
默认情况下,kotlin类是final修饰的,所以它们不能被继承。要使一个类可继承,用open关键…
报错:Property delegate must have a ‘getValue(SecurityCheckView, KProperty*>)’ method. None of the following functions are suitable
解决方案:就是在根目录的build.gradle中改变 kotlin的插件版本 classpath “org.jetbrains.kotlin:kotli…
在 Kotlin 编程语言中,var 和 val 是两个基本的关键字,用于变量声明。
它们的正确使用对于编写可维护和高效的代码至关重要。
一、对比分析:
var :用于声明可变变量。使用 var 声明的变量可以在初始化后被重新赋值。val &#…
实化泛型
怎么写才能将泛型实化呢?首先,该函数必须是内联函数才行,也就是要用inline关键字来修饰该函数。其次,在声明泛型的地方必须加上reified关键字来表示该泛型要进行实化。示例代码如下:
inline fun <reifie…
在 Android 开发中,主线程是负责处理用户界面操作的线程。绑定 CPU 大核的作用是为主线程提供更高的计算性能和更快的响应速度。
通常情况下,Android 设备的 CPU 由多个小核和少量大核组成,小核主要负责处理低功耗的后台任务,而大…
重载算术运算符
重载二元算术运算
使用operator定义plus()方法后,可以直接使用号求和
data class Point(val x: Int, val y: Int) {operator fun plus(other: Point): Point {return Point(x other.x, y other.y)}
}
val p1 Point(1, 2)
val p2 Point(3, 4)
…
Data classes 官方介绍
在学习之前带着问题往往能够收获颇丰 文章目录 1 输出结果是什么?2 输出结果是什么?3 输出的结果是什么?4 下面哪些data class 可以编译通过? 1 输出结果是什么?
data class Student(var name: String "&quo…
报错如下:Property delegate must have a ‘getValue(SecurityCheckView, KProperty*>)’ method. None of the following functions are suitable
解决方案就是在: buildscript { ext.kotlin_version “1.3.72” repositories { google() jcenter(…
kotln中 flatten 和 flatMap 在 Kotlin 中虽然都用于扁平化处理集合,但它们的用法和效果并不完全一样
flatten
flatten 函数主要应用于嵌套集合(如 List of List 或 Set of Set 等),它会将嵌套集合中的所有元素合并到一个单一层…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…
1.range表达式 fun main() {var age 12.3if (age in 0.0..3.3){println("婴幼儿")}else if (age in 4.0..12.2){println("少儿")}else{println("未知")}/*** in 后面还可以接 list set 都可以*/if (age !in 0.0..3.3){println("婴幼儿&quo…
泛型类型参数
编译器一般可以推导出类型实参 若创建空的list,则需要显示指定类型实参,可以用如下两种方式
val name: MutableList<String> mutableListOf()val name2 mutableListOf<String>()泛型函数
public fun <T> List<T&…
一、问题描述:
error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of its metadata is二、问题原因:
jar包版本冲突
三、解决方式:
1、Rebuild Project(推荐☆) 重新构…
long 与 Long
long类型和Long类型是不一样,long类型属于基本的数据类型,而Long是long类型的包装类。
结论
long是基本数据类型,判断是否相等时使用 ,即可判断值是否相等。(基本数据类型没有equals()方法࿰…
在 Kotlin 中,with 函数是一个非常方便的工具,它可以帮助简化对特定对象的操作。本文将介绍 with 函数的使用方法,并与 Java 中的实现进行对比。
Kotlin 中的 with 函数
with 函数允许在一个对象上执行一系列操作,而无需重复引用…
具体报错信息如下:
compileDebugJavaWithJavac task (current target is 1.8) and compileDebugKotlin task (current target is 17)jvm target compatibility should be set to the same Java version.很显然,这是一个版本冲突问题,compile…
公众号「稀有猿诉」 原文链接 More about Kotlin Functions Kotlin中的函数是一级对象,除了常规的函数式编程以外,还支持一些非常灵活的特殊用法,可以大大增强代码的可读性和简洁性,让代码更加的优雅,在业界顶级…
1 通过序列提高效率
首先看以下代码:
val list listOf(1, 2, 3, 4, 5)
list.filter { it > 2 }.map { it * 2 }上面的写法很简单,在处理集合时,类似于上面的操作能帮我们解决大部分的问题。但是,当 list 中的元素非常多的时…
1 通过序列提高效率
首先看以下代码:
val list listOf(1, 2, 3, 4, 5)
list.filter { it > 2 }.map { it * 2 }上面的写法很简单,在处理集合时,类似于上面的操作能帮我们解决大部分的问题。但是,当 list 中的元素非常多的时…
集合概述 继承关系(List、Set和Map均继承了Collection)
List
List 是一个接口,用于表示列表(List)数据结构。它是一个有序的集合,允许重复元素。
listOf 创建的列表是不可变的,而 mutableListOf 创建的列表是可变的,允许对其进行添加、删除和更新操作。
fun main()…
RecyclerViewBaseRecyclerViewAdapterHelper显示不全只显示第一行item,我懵了…,我不说多,直接说吧
先看一下适配器代码中的convert()方法:
class MineRadioAdapter(layoutResId: Int R.layout.item_my_live) :BaseQuickAdapte…
目录
1. List 的使用
1.1 不可变 List
1.2 可变 List
2. Set 的使用
2.1 不可变 Set
2.2 可变 Set
3. Map 的使用
3.1 不可变Map
3.2 可变Map 本篇主要为已经有Java基础的同学展示Kotlin语言中的List,Set,Map的创建和使用,所以Java代…
一、为什么创建类不能被继承
class或data class 默认情况下,Kotlin 类是最终(final)的:它们不能被继承。 示例:data class PsersonBean 反编译data class PsersonBean 生成 public final class PsersonBean 示例&…
系列文章
IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…
可空类型
在Kotlin中,我们可以在任何类型后面加上“?”,比如“Int?”,实际上等同于“Int? Int or null”。
通过合理的使用,不仅能够简化很多判空代码,还能够有效避免空指针异常。
注意:由于null只能…