# Android Kotlin 获取注解的实用指南 在Android开发中,注解是一种强大而实用的工具。它们可以提供编译时信息或运行时信息。本文将帮助你了解如何在Kotlin获取注解。我们将分步进行,每一步都有详细的代码示例和注释。整件事情的流程如下: ## 流程步骤 | 步骤 | 操作 | |-------|
原创 2024-09-08 03:36:35
141阅读
1.前置知识在Kotlin中,函数是一等公民,它也是有自己的类型的。比如()->Unit,函数类型是可以被存储在变量中的。Kotlin中的函数类型形如:()->Unit、(Int,Int)->String、Int.(String)->String等。它们有参数和返回值。最后一个Int.(String)->String比较奇怪,它表示函数类型可以有一个额外的接收者类型
Google I/O 2017 首日 Keynote 刚刚落幕,其中 Google 宣布 Android 系统开发全面支持Kotlin 算是一个非常重磅的新闻。昨天的文章,你可能对Kotlin有了一定的了解,今天我们再来深入了解下这门语言。Kotlin的简介 Kotlin 是一个基于 JVM静态类型编程语言,由 JetBrains 开发。于2010年首次推出。 相信很多人都会问:为什么Kotlin
转载 2023-10-28 21:38:32
227阅读
在日常 Android 开发中,流行着数以千计的框架帮助我们提升开发效率。 使用 Kotlin 开发时仍然可以沿用这些框架,而且和使用 Java 同样简单。 本章教程将提供相关示例并重点介绍配置的差异。 教程以 Dagger、 Butterknife、 Data Binding、 Auto-parcel 以及 DBFlow 为
转载 2024-02-05 01:17:04
168阅读
Kotlin serialization是由kotlin官方提供,可将kotlin对象序列化和反序列化的插件,支持序列化格式包括:JSON, Protobuf, CBOR, Hocon 和Properties serialization使用非常简单://序列化 val data = Project("kotlinx.serialization", "Kotlin") va
转载 2023-11-26 18:32:35
173阅读
 简介Kotlin (cot-lin) 是一种针对 Java 平台的编程语言。大概与 2010 年Kotlin诞生于 JetBrains 公司 (就是那个开发了很多很好用的 IDE 的公司)。Kotlin 以靠近俄罗斯圣彼得堡的一座岛屿命名 (我觉得这个应该是学习 Java 的)。Kotlin 的特性是简洁 , 安全,实用,专注于和 Java 的互操作性。可以应用在服务端开发, Andr
转载 2023-08-04 12:55:33
136阅读
 这几天在对接某项目时,碰到了个关于Kotlin Serialization的小问题,一般来说,我们把对象序列化成JSON,或者JSON串转成对象,Google Gson用的比较多.但对于Kotlin来说,Gson反序列化时出现了问题.准备类:data class A(var b: Int , var c: String = "kotlin")测试及结果:val gson = Gson(
转载 2023-12-26 22:02:15
63阅读
1.Kotlin簡介Kotlin 是一个用于现代多平台应用的静态编程语言,Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于I
Kotlin 杂谈之 setOnClickListener 为什么可以简写成 Lambda先上代码://例1 //java里定义的一个接口 public interface OnClickListener { void onClick(View v); } //kotlin调用 view.setOnClickListener { //do
转载 2024-06-25 20:47:48
41阅读
Kotlin对象和对象表达式在面向对象的编程世界里,万物皆对象,但是我们这里说的Kotlin的对象(或称作对象声明),是Kotlin语言里面的一种定义。对象是和类一个层级的,其语法声明为object ObjectName {}object修饰的对象声明,默认是单例的,也就是说,当你需要一个单例时,使用object是最优的选择,不需要再使用其他的单例生成模式,而且它的初始化是线程安全的。创建对象的方
转载 2023-12-25 11:08:10
40阅读
1. 变量的声明 kotlin变量的声明必须使用var或val关键字。其中: var: 用此关键字声明的变量表示可变变量,即可读且可写(可以被多次赋值)。相当于Java中普通变量 val: 用此关键字声明的变量表示不可变变量(也叫只读变量、运行期常量),即可读但不可写(不能重新赋值)。基本相当于Java中用final修饰的变量。标准定义格式: var或val 变量名: 数据类型 = xxx 注意
类声明使用class关键字声明类,查看其声明格式:: modifiers ("class" | "interface") SimpleName typeParameters? primaryConstructor? (":" annotations delegationSpecifier{","})? typeConstraints (classBody? | enumClas
转载 2023-12-14 15:00:20
316阅读
Koin框架,适用于使用Kotlin开发 ,是一款轻量级的依赖注入框架,无代理,无代码生成,无反射。相对于dagger 而言更加适合Kotlin语言。官方网站GitHubApplication DSLkoinApplication { }       用于创建KoinApplocation的实例配置startKoin { }startKoin {
# Android Kotlin 自定义注解 ## 简介 在Android开发中,注解(annotation)是一种特殊的标记,它可以被添加到代码中,用于提供额外的信息。在编译过程中,注解可以被处理器(annotation processor)读取,并根据注解中的信息生成新的代码或者进行其他的操作。自定义注解使得开发人员能够在代码中添加自己定义的标记,从而实现更加灵活和可读性强的代码。 Ko
原创 2023-10-01 10:50:32
298阅读
1. val / var 变量声明 • val:修饰变量时相当于 java 中 final • var 2. fun 函数声明 3. ${} 字符串模板 4. import 导入任何种类的声明 同 java 中的 import ,区分不同包中的同名类 kotlin 分包和 java 不同,不是严格的分包。即可以不在包对应的文件夹下。4. enum class 枚举 5. when 分支表达式 6
转载 8月前
34阅读
/   前言   / 这是一个带弧形的进度条,其实这个控件很久之前已经实现了,但是我想用Kotlin去重写优化一遍,并且对此铺开来讲解。 项目的Github地址: https://github.com/TanJiaJunBeyond/Circula
转载 7月前
9阅读
1.延迟初始化属性// Kotlin可以对属性设置为延迟初始化 lateinit var dept: Department提示: 延迟初始化属性要求:不能是可空类型;只能使用为var声明;lateinit关键字应该放在var之前。2. 委托属性Kotlin提供一种委托属性,使用by关键字声明class User { var name: String by Delegate()
转载 2024-09-13 21:36:19
27阅读
一、Kotlin中类的继承在Java中,类基于Object,而在Kotlin中类基于Any,所有类都默认继承Any。kotlin中的类默认是final类型的,不可被继承,想要作为基类被继承必须使用open关键字修饰。对于没有超类型声明的类默认超类是Any,Any类只有三个函数~package kotlin public open class Any { public open o
今天来看看Kotlin中关于lambda的两个函数with和apply,我们将其称为带接收者的lambda,不了解为什么会这么命令,看完下面的实例你应该就可以理解了。注意,上面也已经说了,with和apply其实是两个函数,虽然它们看起来像是关键字。with函数简单使用我们在Java中经常会写下面这样的代码:public String getRes() { StringBuilder re
站在巨人的肩膀上:https://medium.com/swlh/kotlin-coroutines-in-android-suspending-functions-8a2f980811f8前言:① 使用 suspendCancellableCoroutine 和 suspendCoroutine 可以将回调函数转换为协程② SuspendCancellableCoroutine 返回一个 Can
转载 2023-10-08 11:37:19
120阅读
  • 1
  • 2
  • 3
  • 4
  • 5