安卓 KOTLIN - 技术教程文章

kotlin语法--->fun interface 函数式接口(使kotlin符合SAM转换)【代码】【图】

kotlin语法--->fun interface 函数式接口(使kotlin也符合SAM(single abstract method)转换)问题出处Compose中的layout函数,在进行自定义layout时,它的第三个参数也可以使用尾随的lambda语法来写,当时感觉比较疑惑.因为kotlin在调用java中的函数式接口是可以使用lambda语法来简写的。但是kotlin调用自身的”函数式接口“时会出现编译时错误。下面是一个例子.fun setMyListener(listener: MyListener) {listener.onCheckdChange("nam...

Kotlin 或将取代 Java——《Java 编程思想》作者 Bruce Eckel [转]

Bruce Eckel 是《Java 编程思想》、《C++编程思想》的作者,同时也是 MindView 公司的总裁,该公司向客户提供软件咨询和培训。他是 C++ 标准委员会拥有表决权的成员之一,拥有应用物理学学士和计算机工程硕士学位。从 1984 年至今,他已经发表了超过 150 篇计算机技术文章,出版了 6 本书。他的《C++编程思想》一本书在 1995 年被评为“最佳软件开发图书”,《Java 编程思想》被评为 1999 年 Java World“最受读者欢迎图书”,并且...

Kotlin 基础(二)- DSL【代码】

所谓 DSL 领域专用语言(Domain Specified Language/ DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。 Kotlin DSL 定义:使用 Kotlin 语言开发的,解决特定领域问题,具备独特代码结构的 API 。一、DSLDSL(domain specific language),即领域专用语言:专门解决某一特定问题的计算机语言,比如大家耳熟能详的 SQL 和正则表达式。使用DSL的编程风格,可...

[Kotlin] companion object == static method【代码】

In Kotlin, there is no static methods, but we can use companion object which works the same as static methods. For example, a class:package com.rskimport java.security.Provider import java.security.Securityclass Providers {// similar as static companion object {fun getProviders(): List<Provider> {val providers = Security.getProviders();val listOfProviders: List<Provider> = providers.asList()ret...

聊一聊Kotlin,学习路上不陌生【图】

前言 今天早上翻阅技术博文,突然看到题为“是时候来学习kotlin”的文章,想想kotlin自google亲自指定为android开发语言也有一年多时间了这一年,各种学习资料铺天盖地,也有许多团队将原有java项目转为kotlin,但是其中的心酸苦辣,可能只有开发人员自己才能深切的体会到;借用鸿洋大哥的原话:太多开源库开始使用Kotlin作为语言开发了一批优秀的博主开始使用kotlin作为示例代码了特别是AS3.0发布之后,可以不用集成插件就可以进行...

kotlin 系统类型【代码】

泛型变量类型的参数化1.最基本泛型fun main() {var a: A<String> = A<String>("hello")a.test()//简写,可以不使用<>var b = A("hello")b.test()}data class A<T>(var t:T){fun test(){println(t)} } 原文:https://www.cnblogs.com/buchizaodian/p/12630259.html

一个Swifter的Kotlin学习——Kotlin 基本语法【代码】【图】

刚刚结束的谷歌io大会真是干货满满的,身为程序员最让我刚兴趣的还是谷歌宣布kotlin成为安卓第一开发语言这确实是个比较震撼的消息,身为移动端开发的我,势必要及时掌握这门开发语言。个人看了kotlin的中文文档,感觉它的语法和swift十分相像(到底谁抄袭谁~),所以如果你之前效果swift开发的iOS程序,掌握这门语言难度不大!废话少说,下面是干货:1、常量与变量常量: val a: Int = 1val b = 1val c: Int //当没有初始化值时必...

Kotlin的基本类型(数字、字符、布尔和数组)之数字类型【代码】【图】

Kotlin的内置的数字类型注意:Kotlin中数字类型 不能隐式转换Kotlin支持 二进制、十进制、十六进制,但是不支持八进制  二进制 var a = 0b0011_0011(以0b开头)  十进制 var b = 999  十六进制 var c = 0x1A4F(以0x开头)Kotlin创建数字类型的对象:1 fun main(args: Array<String>) { 2 var int:Int= 1 ; 3 var long:Long = 1 ; 4 var double:Double = 1.1; 5 var float : Float = 1.1F ; 6 var short : ...

kotlin 协程 与 android ImageView【代码】

今天因为要给banner的图片添加圆角,使用 Bitmap 转换圆角 用协程去切换线程 在Debug中出现ThreadException: Only the original thread that Created a view hierarchy can touch its views 不debug时正常显示猜测原因为: 协程在debug时,当前线程被断点阻塞,自动切换到其他线程中去了 导致不是原始的view历史记录线程操作显示View解决办法为:在与UI界面的控件交互的代码 加上withContext(Dispatchers.Main){  //你的 view 代码 ...

Kotlin协程通信机制: Channel【代码】

Coroutines ChannelsJava中的多线程通信, 总会涉及到共享状态(shared mutable state)的读写, 有同步, 死锁等问题要处理.协程中的Channel用于协程间的通信, 它的宗旨是:Do not communicate by sharing memory; instead, share memory by communicating.Channel basicschannels用于协程间的通信, 允许我们在不同的协程间传递数据(a stream of values).生产者-消费者模式发送数据到channel的协程被称为producer, 从channel接受数据的协...

kotlin + springboot启用elasticsearch搜索【代码】

参考自:http://how2j.cn/k/search-engine/search-engine-springboot/1791.html?p=78908工具版本: elasticsearch 6.2.2、 kibana 6.2.2, 下载地址: elasticsearch、kibana下载demo1、kotlin版springboot项目创建访问https://start.spring.io/, 创建项目demo(maven + kotlin + springboot 2.1.7, 其他默认)。添加web支持、elasticsearch搜索及kotlin测试所需依赖 <dependency><groupId>org.springframework.boot</gr...

IDEA基于kotlin开发android程序配置小结【代码】

IDEA功能极其强大,和微软的宇宙第一IDE不相上下。用了很长时间,对它配置的完善性产生了近乎迷信的感情。似乎只要走正常渠道,用它来配置,没有不成功的。IDEA是开发android原生程序的利器,android studio即是基于IDEA开发的工具。AndroidStudio能干的,IDEA同样能干的很好。kotlin是jetbrain开发的语言,堪称android上的swift,而且完美兼容java,配合起来相当爽利。但偏偏在kotlin的配置上,栽了个大跟头。在android里引入kotl...

如何看待 Kotlin 成为 Android 官方支持开发语言

Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言。一时间朋友圈和Android圈被各种刷屏。当然我也顺势而为发布了一篇的文章《为什么我要改用Kotlin》,着实狠狠地蹭了一波热度(尽管这样会被鄙视)。眼下Android圈已经躁动了,甚至严重到如果对Kotlin视而不见就显得自己不像一个合格的Android程序员。本文尝试从一个客观全面一点儿的角度来看待这件事情,尽力为大家提供一个比较理性的观点供参考。 为什么会选用Kotlin关于...

全新升级 Kotlin系统入门与进阶

第1章 课程介绍(需具备Java基础)本章主要介绍什么是Kotlin,课程安排,以及开发环境的配置。项目实战移步-->《Kotlin打造完整电商APP 模块化+MVP+主流框架》:http://coding.imooc.com/class/166.html1-1 课程导学1-2 什么是Kotlin?第2章 数据类型(难度系数:☆)本章主要讲解 Kotlin 的基本词法,从类型系统入手为大家介绍 Kotlin 中都存在哪些类型,以及相关的特性。(知识点:基本类型、类与对象、空类型、智能类型转换、包...

Kotlin语言【代码】

Kotlin语言Google规定的官方Android语言# 1. 变量// TODO Var 与 Val fun main() {// 可变变量定义:var 关键字// var <标识符> : <类型> = <初始化值>// 不可变变量定义:val 关键字,只能赋值一次的变量(有一点点类似Java中final修饰的变量)// val <标识符> : <类型> = <初始化值>// 可以修改的var name: String = "Derry"name = "张三"name = "李四"var info1 = "AAAA" // 类型推到var info2 = ‘A‘ // 类型推到 Charvar i...

如何通过提供大小在Kotlin中创建一个像Java一样的数组?【代码】

我怎样才能像在java中一样创建数组?int A[] = new int[N];我怎么能在Kotlin做到这一点?解决方法:根据reference,数组按以下方式创建: >对于Java的原始类型,存在不同的类型IntArray,DoubleArray等,它们存储unboxed值. 它们是使用相应的构造函数和工厂函数创建的:val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size] val numbersFromOne = IntArray(size) { it + 1 } val myInts = intArrayOf(1, 1, 2, 3, 5,...

android-如何使用Anko和Kotlin获取SQLite表的最大_id值?【代码】

DBRecordTable._ID是一个INTEGER PRIMARY_KEY AUTOINCREMENT,我希望获取表的最大_id值,如果表中没有数据行,则将返回零. 我尝试编写代码select(tableName,DBRecordTable._ID).orderBy(DBRecordTable._ID,Desc).limit(1),但它不正确,该如何解决? 码class DBRecordHandler(private val mDBHelper: DBRecordHelper =DBRecordHelper.instance,private val tableName:String =DBRecordTable.TableNAME,private val idField:String=DBRec...

flutter开发dart基本数据类型与java、kotlin、oc、swift对照表【图】

flutter开发基本数据类型与java、kotlin、oc、swift对照表盗的图哦,记录一下方便理解查阅

java – Kotlin:泛型方法和for循环请求iterator()【代码】

这是一个简单的泛型方法,并且将forgs中的args传递给for循环会导致错误:for-loop range must have and iterator() methodfun main(args: Array<String>) {val arr: IntArray = intArrayOf(1,2,3,4)val charA: CharArray = charArrayOf('a','b','c','d')printMe(arr)printMe(charA)}fun <T>printMe(args: T){for (items in args){println(items)} }我如何让它迭代char []和数组的值解决方法:Kotlin中的for循环按惯例工作,静态地查找...

JavaScript 中调用 Kotlin 方法实例详解

JavaScript 中调用 Kotlin 方法实例详解 Kotlin 编译器生成正常的 JavaScript 类,可以在 JavaScript 代码中自由地使用的函数和属性 。不过,你应该记住一些微妙的事情。 用独立的 JavaScript 隔离声明 为了防止损坏全局对象,Kotlin 创建一个包含当前模块中所有 Kotlin 声明的对象 。所以如果你把模块命名为 myModule,那么所有的声明都可以通过 myModule 对象在 JavaScript 中可用。例如: fun foo() = "Hello"可以在 JavaScript...

Kotlin学习第一步 kotlin语法特性

今年 Google I/O 2017 开发者大会中,Google 宣布正式把 Kotlin 纳入 Android 程序的官方一级开发语言(First-class language),作为Android开发者,当然要逐步熟悉这门语言,第一步就要从语法开始学习。 在这之前,我们需要了解怎么使用Kotlin编写一个Android应用。对于Android Studio 3.0版本,我们在创建工程的时候直接勾选 Include Kotlin support 选项就可以了;对于3.0以前的版本,我们需要安装Kotlin插件,同时还要手动配置...

kotlin + springboot整合mybatis操作mysql数据库及单元测试【代码】

1、kotlin版springboot项目创建 访问https://start.spring.io/, 创建项目demo(maven + kotlin + springboot 2.1.7, 其他默认)。 2、创建数据库及表create database test; use test; CREATE TABLE category_ (id int(11) NOT NULL AUTO_INCREMENT,name varchar(30),PRIMARY KEY (id) ) DEFAULT CHARSET=UTF8; insert into category_ values(null,‘category 1‘); insert into category_ values(null,‘category 2‘); insert i...

Kotlin 封装 DB 操作举例【代码】

首先继承SQLiteOpenHelper类,建一个自己的BaseDbHelper.ktclass BaseDbHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {private val TAG = BaseDbHelper::class.java!!.getSimpleName()companion object {private val DB_NAME = "account.db"private val DB_VERSION = 6}override fun onCreate(db: SQLiteDatabase) {db.execSQL(UserTable.TABLE_SQL)}/*** onUpgrade()方法在数据库版本每次发...

Android开发之Kotlin从入门到精通总结(三)---函数式编程基石——高阶函数和Lambda表达式【代码】

(一)、函数式编程简介 1.1 函数式编程(functional programming)函数式编程是一种编程典范,也就是面向函数的编程。 在函数式编程中一切都是函数。 函数式编程核心概念如下: ① 函数是 “ 一等公民 ” :是指函数与其他数据类型(Int、Double、String等)是一样的,处于平等的地位。函数可以作为其他函数的参数传入,也可以作为其他函数的返回值返回。 ② 使用表达式,不用语句:函数式编程关心的输入和输出,即:参数和返回值。...

kotlin和java区别,面试要掌握这几个关键点!薪资翻倍【图】

前言 咱们这行似乎每个人都有个常识:程序员做到35岁之后,职业道路就很窄了,但我不信这个邪,我今年37岁,依然活跃在开发一线,并且做到了月入四万+。 偶尔也有人问,你是怎么打破35岁定律的?对于这个问题我从没正面回答过,直到今年年初。 今年疫情期间,与同行好友的一席聊天,让我足足思考了两天:回想起来其实自己之前也走过不少弯路,但比起大多数同行,自己最大的幸运,是坚持走完3条路之后,最终找准了自己最适合的那一...

Kotlin/Java 读取Jar文件里的指定文件【代码】【图】

原文地址:Kotlin/Java 读取Jar文件里的指定文件 | Stars-One的杂货小窝jar包本质上也是压缩文件,下面给出如何读取jar包里某个文件的源码:val jarFile = JarFile("D:\\project\\javafx\\lanzou-downloader\\out\\text.jar") val entry =jarFile.getEntry("desc.png") //这里是相对于目录,注意,开头并不需要"/" val entry =jarFile.getEntry("img/7z.png") val inputStream = jarFile.getInputStream(entry)遍历的方法: val jarFil...

kotlin和java区别,Android开发经验的有效总结,使用指南【图】

前言 说不焦虑其实是假的,因为无论是现在还是最近几年,很早就有人察觉Android开发的野蛮生长时代已经过去。过去的优势是市场需要,这个技术少有人有,所以在抢占市场的时候,基本上满足需要就已经可以了。但是现在,各式各样的APP层出不穷,APP的质量成为新的竞争标准。这也意味着不管是系统设计还是性能优化等方面,市场都给Android开发者提出了更高的要求。那么,Android是不是真的不吃香了呢?其实不是的,高级及以上还有很大...

Kotlin和C将角逐2017年TIOBE Index编程语言名人堂【图】

前言TIOBE社区发布了2017年最后一期“编程语言排行榜”。TIOBE社区编程语言指数是编程语言普及程度的一个指标。该指数每月更新一次。是根据世界各地熟练的工程师,课程和第三方供应商的数量而定的。谷歌,必应,雅虎,维基百科,亚马逊,YouTube和百度等流行的搜索引擎被用来计算ratings评定指数。需要注意的是,TIOBE指数并不表征最好的编程语言,或者代码量最多的语言。该指数可用于检查您的编程技能是否仍然是最新的,或者在开始...

Java实现Kotlin【代码】

interface ApiService {@GET("api2021/z520210324.json")fun getCil():Observable<JavaBean> }``` class MyApp : Application() { override fun onCreate() { super.onCreate() Fresco.initialize(this) } } object OkHttpUtils {val retrofit=Retrofit.Builder().baseUrl("http://47.94.132.125/").addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).client(OkHttp...

如何用Java和Kotlin实现高性能桌面条形码扫描【代码】【图】

很多做Java开发的喜欢用ZXing实现扫码功能,但是ZXing的功能有限。如果要开发企业级的产品,就需要企业级的SDK。Dynamsoft Barcode Reader作为企业级的扫码SDK,提供了移动和桌面版本。SDK基于JNI封装,能够给Java程序提供最好的性能。 使用Gradle创建Java/Kotlin工程 习惯安卓开发的都很熟悉Gradle。Gradle用于桌面程序开发也很方便。 用Gradle命令创建一个新的工程: $ gradle initSelect type of project to generate:1: basic2...