![](https://img-blog.csdnimg.cn/d4ac014e575b4e008ef045187de3901c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kotlin
Kotlin
mozhimen
生活是夹在笔记中的尘埃 欢迎[商务合作]
展开
-
【Kotlin】Platform declaration clash: The following declarations have the same JVM signature
😃。原创 2024-05-28 11:55:45 · 373 阅读 · 0 评论 -
【Kotlin】What?Kotlin中1+0.1不等于1.1?
为了避免精度丢失的问题,一种常用的方法是使用 BigDecimal 类来进行精确的十进制运算。BigDecimal 类提供了高精度的十进制运算,并且可以避免浮点数运算中的舍入误差。在你提供的例子中,1 + 0.1 的结果应该是 1.1,但实际上可能会出现精度丢失的情况。这是由于浮点数的内部表示方式导致的,它使用有限的二进制位数来表示一个实数,因此无法精确地表示某些十进制数。通过使用 BigDecimal 类,你可以实现精确的十进制运算,并避免浮点数运算中的精度丢失问题。原创 2023-11-02 21:02:32 · 171 阅读 · 0 评论 -
【Kotlin】泛型如何判断是否是String类型
【代码】【Kotlin】泛型如何判断是否是String类型。原创 2023-06-05 12:13:06 · 400 阅读 · 0 评论 -
【Kotlin, Java】世界坐标与圆上点坐标计算
有的时候canvas的坐标并不是这样, 在Android中, 向下是Y的正方向, 向右是X的正方向的. 也就意味着我们需要将。🎁Java 以(1,1) 为圆心, 如何得到半径为5, 角度为130度的圆上点的坐标。130 * Math.PI / 180 是角度 130 度的弧度。🎁在世界坐标中, x的正方向指的是东西南北的哪个。坐标y轴正负对调才能得到正确的世界坐标。x 是圆上点的 X 坐标。y 是圆上点的 Y 坐标。Math.PI 是圆周率。原创 2023-05-31 14:54:03 · 202 阅读 · 0 评论 -
【Android,Kotlin】妙用suspendCancellableCoroutine,同步执行异步回调代码
【代码】【Android,Kotlin】妙用suspendCancellableCoroutine,同步执行异步回调代码。原创 2022-10-21 14:53:51 · 675 阅读 · 0 评论 -
【Kotlin】Kotlin如何判断lateinit是否初始化
Kotlin如何判断lateinit是否初始化原创 2022-09-19 01:35:13 · 834 阅读 · 0 评论 -
【Kotlin设计模式】Java适配器模式在Kotlin的实现
【Kotlin设计模式】Java适配器模式在Kotlin的实现。原创 2022-07-29 15:27:44 · 582 阅读 · 0 评论 -
【Kotlin设计模式】Java的建造者模式在Kotlin的实现
【Kotlin设计模式】Java的建造者模式在Kotlin的实现。原创 2022-07-29 15:05:12 · 604 阅读 · 0 评论 -
【kotlin设计模式】Java的装饰器模式在kotlin的实现
【kotlin设计模式】Java的装饰器模式在kotlin的实现。原创 2022-07-29 14:25:22 · 477 阅读 · 0 评论 -
【Kotlin】笔记22-泛型的高级特性
Kotlin笔记22-泛型的高级特性,reified14.1 泛型的高级特性,reified对泛型进行实化reifiedKotlin中是可以将内联函数中的泛型进行实化的声明函数必须是内联函数(inline)在声明泛型的地方必须加上reified关键字来表示该泛型要进行实化示例代码如下:inline fun <reified T> getGenericType() = T::class.java这里实现了个Java中完全不可能实现的功能: geGeneric原创 2022-04-14 17:03:41 · 1290 阅读 · 0 评论 -
【Android,kotlin设计模式】Java的单例在Kotlin的5种实现
Java的单例在Kotlin的5种实现饿汉式懒汉式线程安全的懒汉式双重校验锁式静态内部类式饿汉式Javapublic class Singleton { private static Singleton instance=new Singleton(); private SingletonDemo(){ } public static SingletonDemo getInstance(){ return instance; }}原创 2021-12-22 14:26:05 · 1973 阅读 · 0 评论 -
【kotlin】kotlin小算法: 判断数字集合是否连续递增
判断数字集合是否连续递增判断数字集合是否连续递增fun judgeBookIllegal(list: List<Int>): Boolean { //1,2,3 var firstIndex = list[0]//1 list.forEachIndexed { index, i -> if (index > 0 && i != firstIndex + 1) { return false原创 2021-07-23 11:47:52 · 354 阅读 · 1 评论 -
【Kotlin】kotlin小算法: 转化时间字符串
转化时间字符串,HH-mm-ss->mm:ss来吧,展示fun timeConverse(time: String): String { //2021-07-20 14:00:00->14:00 val reg = "(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})".toRegex() return time.replace(reg, "$4:$5")}原创 2021-07-21 18:26:13 · 599 阅读 · 2 评论 -
【kotlin】Kotlin笔记21-infix(高级语法糖)
Kotlin笔记21-infix,高级语法糖13.1 infix,高级语法糖infix函数infix举个栗子:"Hello Kotlin".startsWith("Hello")采用infix:infix fun String.beginsWith(prefix: String) = startsWith(prefix)调用:"Hello Kotlin" beginsWith "Hello"序号Tipsinfix的优点它的可读性高,更接近于使用英语的语原创 2021-05-29 00:19:24 · 334 阅读 · 0 评论 -
【kotlin】Kotlin笔记20-委托(by,lazy)
Kotlin笔记20-泛型和委托-by12.2 泛型和委托类委托和委托属性序号Tips委托设计模式基本理念操作对象自己不会去处理某段逻辑,而是会把工作委托给另外一个辅助对象去处理Java对于委托并没有语言层级的实现C#对委托进行了原生的支持Kotlin博采众长,支持委托功能类委托核心思想将一个类的具体实现委托给另外一个类去完成类委托class MySet<T>(private val helperSet: HashS原创 2021-04-14 15:54:39 · 285 阅读 · 0 评论 -
【kotlin】Kotlin笔记19-泛型(T)
Kotlin笔记19-泛型和委托-T12.1 泛型和委托泛型的基本用法T: 泛型序号Tips定义方式一种是定义泛型类,另一种是定义泛型方法T语法结构: < T>< T>这里的T不是固定的,可以为其他字母单词,T是一种约定俗成的泛型写法泛型类Example:class MyClass<T>{ fun method(param:T):T{ return param }}调用:原创 2021-04-13 14:06:07 · 444 阅读 · 0 评论 -
【kotlin】Kotlin笔记18-高阶函数的应用
Kotlin笔记18-高阶函数的应用11.1 高阶函数的应用简化SharedPreferences序号向SharePreferences存储数据的过程1调用其edit()方法获取SharedPreferences.Editor对象2向SharePreferences.Editor对象中添加数据3调用apply()方法将添加的数据提交,完成数据存储操作描述转化成代码:val edior=getSharedPreferences("data",Contex原创 2021-04-12 14:08:52 · 226 阅读 · 0 评论 -
【kotlin】Kotlin笔记17-高阶函数(内联函数)
Kotlin笔记17-高阶函数-内联函数10.2 高阶函数内联函数的作用Example:fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int { return operation(num1, num2)}fun main() { val num1=100 val num2=80 val result1= num1AndNum2(num1,num2,::plus)原创 2021-04-12 10:51:17 · 205 阅读 · 0 评论 -
【kotlin】Kotlin笔记16-高阶函数(函数类型)
Kotlin笔记16-高阶函数10.1 高阶函数定义高阶函数序号Tips1接受Lambda参数的函数称为具有函数式编程风格的API2借助高阶函数定义自己的函数式API定义如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数称为高阶函数新概念函数类型作用高阶函数允许让函数类型的参数决定函数的执行逻辑函数类型的基本语法规则:(String, Int) -> Unit->左边->右边原创 2021-04-09 14:32:53 · 279 阅读 · 0 评论 -
【kotlin】Kotlin笔记15-扩展函数和运算符重载(operator)
Kotlin笔记15-扩展函数和运算符重载9.1 延迟初始化和密封类扩展函数如何对一个字符串计数Example:object StringUtil{ fun letterCount(str:String):Int{ var count=0 for(char in str){ if(char.isLetter()){ count++ } } re原创 2021-04-09 09:26:46 · 477 阅读 · 0 评论 -
【kotlin】Kotlin笔记14-延迟初始化和密封类(lateinit,sealed)
Kotlin笔记12-延迟初始化和密封类8.1 延迟初始化和密封类延迟初始化lateinit: 针对编译器Example:private var adapter: MsgAdapter? = null//优化->private lateinit var adapter : MsgAdapter判断一个变量是否完成了初始化if(!::adapter.isInitialized){ adapter = MsgAdapter(msgList)}序号Tips原创 2021-04-08 15:46:54 · 193 阅读 · 0 评论 -
【Kotlin】Kotlin笔记13-静态方法(注解@JvmStatic,顶层方法)
Kotlin笔记12-标准函数和静态方法-7.2 标准函数和静态方法静态方法Java:public class Util{ public static void doAction(){ System.out.println("do Action); }}序号Tips1静态方法适合编写一些工具类的功能,其全局通用2Kotlin弱化静态方法概念,采用单例类Kotlin单例类:objectobject Util { f原创 2021-04-07 10:44:22 · 445 阅读 · 1 评论 -
【Kotlin】Kotlin笔记12-标准函数(run,with,apply)
Kotlin笔记12-标准函数和静态方法-run,with,apply7. 标准函数和静态方法标准函数with,run,applywithwith: 参数一:任意类型的对象,参数二:Lambda表达式序号Tips1Lambda表达式的最后一行作为返回值返回标准格式:val result = with(obj) { //这里是obj的上下文 "value" //with函数的返回值}Example:fun eatFruit() { val原创 2021-04-07 09:58:23 · 172 阅读 · 0 评论 -
【Kotlin】Kotlin笔记11-Kotlin新特性(字符内嵌表达式,函数的参数默认值)
Kotlin笔记11-Kotlin新特性-字符内嵌表达式,函数的参数默认值6. 空指针检查字符内嵌表达式$序号Tips1摆脱字符串联内嵌表达式语法规则:"hello, ${obj.name}. nice to meet you!"仅有一个变量:"hello, $name. nice to meet you!"Example:println("Cellphone(brand = " + brand + ", price = " + price + ")原创 2021-04-07 09:15:47 · 156 阅读 · 0 评论 -
【Kotlin】Kotlin笔记10-空指针检查(非空断言工具!!.,let)
Kotlin笔记10-空指针检查-非空断言工具!!.5.2 空指针检查非空断言工具Example:var content:String?="hello"fun main1(){ if(content!=null){ printUpperCase() }}fun printUpperCase(){ val upperCase= content.toUpperCase() println(upperCase)}上面代码无法运行,函数不知道已原创 2021-04-06 15:49:55 · 224 阅读 · 0 评论 -
【Kotlin】Kotlin笔记9-空指针检查(可空类型系统,判空辅助工具)
Kotlin笔记9-空指针检查-可空类型系统,判空辅助工具?,?:5.1 空指针检查Example:public void doStudy(Study study){ study.readBooks(); study.doHomework();//不安全}public void doStudy1(Study study){ if(study!=null){ study.readBooks(); study.doHomework();//安全 }}原创 2021-04-06 15:29:56 · 193 阅读 · 0 评论 -
【Kotlin】Kotlin笔记8-Lambda编程3(Java的函数式API)
Kotlin笔记8-Lambda编程3-Java的函数式API4.3 Lambda编程3Java的函数式APIExample-Java:interface Runnable { void run();}new Thread(Runnable() { @Override public void run() { System.out.println("Thread is running"); }}).start();Kotlin:Thread(object原创 2021-04-06 15:01:20 · 151 阅读 · 0 评论 -
【Kotlin】Kotlin笔记7-Lambda编程2(List,Map的函数式API)
Kotlin笔记7-Lambda编程2-List,Map的函数式API4.2 Lambda编程2Lambda表达式Example://list//最长水果单词fun findLongestFruit() { val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon") var maxLengthFruit = "" for (fruit in list) {原创 2021-04-06 14:38:09 · 208 阅读 · 0 评论 -
【Kotlin】Kotlin笔记6-Lambda编程1(List,Set,Map)
Kotlin笔记6-Lambda编程1-集合的创建与遍历4.1 Lambda编程1集合Java接口ListSetMapArrayList,LinkedListHashSetHashMapListList集合逐个添加val list = ArrayList<String>()list.add("Apple")list.add("Banana")...listOf: 不可变集合val list = listOf("Apple"原创 2021-04-06 14:10:18 · 195 阅读 · 0 评论 -
【Kotlin】Kotlin笔记5-面向对象编程3(数据类,单例类)
Kotlin笔记5-面向对象编程3-数据类,单例类3.2 面向对象编程3数据类Java实现数据类public class Cellphone { String brand; double price; public Cellphone(String brand, double price){ this.brand = brand; this.price = price; } @Override public boolean equals(Object object){原创 2021-04-06 13:26:14 · 114 阅读 · 0 评论 -
【Kotlin】Kotlin笔记4-面向对象编程2(接口,函数的可见性修饰符)
Kotlin笔记4-面向对象编程2-接口,数据类与单例类3.2 面向对象编程2接口Example:interface Study { fun readBooks() fun doHomework(){ println("do homework default implementation.") }}继承父类与实现接口class Student5(name: String, age: Int) : Person2(name, age), Study原创 2021-04-06 12:20:05 · 128 阅读 · 0 评论 -
【Kotlin】Kotlin笔记3-面向对象编程1(类与对象,继承,构造函数)
Kotlin笔记-面向对象编程1-类与对象,继承与构造函数3.1 面向对象编程类与对象类: 对事物的一种封装(人),通常是名词字段: 类属性(姓名,年龄),通常是名词函数: 类行为(吃饭,睡觉),通常是动词Example:class Person { var name = "" var age = 0 fun eat() { println("$name is eating. He is $age years old.") }原创 2021-04-06 11:11:31 · 163 阅读 · 0 评论 -
【Kotlin】Kotlin笔记2-程序的逻辑控制(if,when,循环语句)
Kotlin笔记-程序的逻辑控制2. 程序的逻辑控制if条件语句ifExample:fun largerNumber3(num1: Int, num2: Int): Int { var value = 0 if (num1 > num2) { value = num1 } else value = num2 return value}语法糖fun largerNumber4(num1: Int, num2: I原创 2021-04-06 10:30:01 · 170 阅读 · 0 评论 -
【Kotlin】Kotlin笔记1-变量和函数(变量,类型推导机制,函数,语法糖)
Kotlin笔记-变量和函数1. 变量和函数变量val: value -> Java:final常量var: variable -> 可被重新赋值的变量类型推导机制val a=10延时赋值val a:Int=10JavaKotlin数据类型intInt整型q(≧▽≦q):Kotlin新特性Kotlin每行代码不需再加;...原创 2021-04-06 09:18:12 · 180 阅读 · 0 评论 -
【Kotlin】Kotlin学习笔记0-HelloKotlin
Kotlin学习笔记-HelloWorld学习Kotlin的一些网站环境在线环境: https://play.kotlinlang.org/Idea工具下载地址: https://www.jetbrains.com/idea-edu/Kotlin官方文档地址: https://kotlinlang.org/docs/home.html准备Kotlin学习环境搭建: 【Kotlin,Idea Edu】用Idea Edu/Idea搭建Kotlin开发环境0. HelloK原创 2021-04-02 13:47:22 · 106 阅读 · 0 评论 -
【Kotlin,Idea Edu】用Idea Edu/Idea搭建Kotlin开发环境
用Idea Edu/Idea搭建Kotlin开发环境在线环境: https://play.kotlinlang.org/教程Idea Edu下载地址: https://www.jetbrains.com/idea-edu/新建项目结构如下新建包:键入代码:mainfun main() { println("hello world!")}运行搞定!!!...原创 2021-04-02 13:36:20 · 283 阅读 · 0 评论 -
【Android,ketlin】Unresolved reference,kotlin不能直接引用xml中id
Unresolved reference,kotlin不能直接引用xml中id今天使用Kotlin直接引用view中的id的时候发现引用不了?如图嗯?难道又要回到findviewbyId?不对劲解决方案找到build gradle,在plugins中加入如下代码id 'kotlin-android-extensions'或者,你也可以apply plugin 'kotlin-android-extensions'...原创 2021-03-16 16:56:40 · 1592 阅读 · 1 评论 -
【Android,Kotlin】ViewModelProviders‘ is deprecated. Deprecated in Java
ViewModelProviders' is deprecated. Deprecated in Java,关于ViewModelProviders在新版本弃用的问题今天在使用lazy懒加载获取PlaceViewModel实例的时候,竟然发现ViewModelProviders被官方弃用了,好家伙,如下图看来这么写是不行了,有没有替代的解决方案呢翻阅网上的内容还是采用掉包的方式拉回弃用的包,或者以new的形式,显然是不适用的 val viewModel by lazy { ViewMode原创 2021-03-16 15:59:30 · 1219 阅读 · 0 评论 -
【Android,Kotlin】No type arguments expected for class Call
No type arguments expected for class Call又又又出现的问题当我们使用retrofit范型错误会报如上问题针对如上问题,我找到了出现相同问题的解决方案链接传送门:Kotlin调用Retrofit 2 使用范型报错:No type arguments expected for class Call原原原问题:stackoverflow-No type arguments expected for class Call解决方案修改为import原创 2021-03-16 13:37:52 · 1864 阅读 · 0 评论