1103 天前 / 技术小黑屋
编写地道的 Kotlin 代码May 19th, 2019 Kotlin 以其简洁实用的语法,赢得了很多Java 开发者,尤其是 Android 开发者的喜爱与应用。然而,虽然我们使用 Kotlin 进行编码,可能并没有书写出地道的 Kotlin 代码,亦或者是遵照写Java的思维,用Kotlin的语法 来编码。 本文将通过多出代码示例,分为Do not(不建议)和Do(建议)两部分,分别代表着不太好的实现和推荐的实现方式,来展示地道的 Kotlin 编码方式。
1104 天前 / 承香墨影
虽然 Android Studio 的负责人 Jeffery 已经澄清,只是 Kotlin-First 而不是 Kotlin-Must,并不需要将 App 用 Kotlin 重写一遍。但是 OkHttp 已经开始用 Kotlin 重写的工作,我们来看看这次重写后带来的差异。 一. 序在今年的 Google I/O 大会上,Google 宣布将以 Kotlin 作为 Android 开发的一级编程语言。而同天,Google 就开源了只支持 Kotlin 的 Jetpack Compose,以借此呼应这一战略。 消息一出,不少 Android 开发就担心以后是不是只能用 Kotlin 开发了。
1111 天前 / 技术小黑屋
Kotlin 和 Flutter 对于开发者究竟意味着什么?May 12th, 2019 本文系CSDN约稿,具体转载事宜请沟通CSDN。 作者 : 段建华 责编 : 唐小引 出品 : CSDN(ID:CSDNnews) 【CSDN 编者按】近些年来,编程语言流行度的变化其实不大,在 TIOBE 编程语言排行榜上,Java、C、C++ 固若金山,也就只有 Python 会攻城略地成为第四。在这 TOP3 之中,Java 以其非常优秀的普适性,可以用于前后端开发,再加上非常成熟的 JVM 虚拟机以及整个 Java 生态,让 Java 这个老大哥常年雄踞 TOP1,在 CSDN 的 Java 相关的文章之中,常有用户留言调侃“Java:你们随便争...
1125 天前 / 技术小黑屋
由于Kotlin默认是面向JDK 6,而Java 8 才引入Lambda表达式支持,Kotlin实际上是将Lambda翻译成了匿名内部类的实现形式。所以当我们反编译上面的代码,得到的如下的代码
Lambda被翻译成的class文件
123456789101112static final class InlineSampleKt.testNormalSafeRun.1extends Lambdaimplements Function0
1140 天前 / u336221
Mvp先上本项目 Github 地址:JudyKotlinMvp 首先声明本项目是参考 git-xuhao/KotlinMvp,对原项目 Mvp 核心代码及Adapter代码按照自己的想法进行了重构,布局 (xml) 文件(除 fragment_mine.xml )、工具类、自定义 View 都直接使用的原项目的文件,本项目的主要目的是为了 Kotlin 学习,将自己对 Java 版 Mvp 的理解用 Kotlin 实现。 说明我希望用尽可能少的文字和代码来说明是自己对 Mvp 的理解。 MvpMvp 最主要的目的就是为了解耦,让各个模块各司其职。
1186 天前 / Tony沈哲
雪山.jpgby lazy 的作用延迟属性(lazy properties) 是 Kotlin 标准库中的标准委托之一,可以通过 by lazy 来实现。
其中,lazy() 是一个函数,可以接受一个 Lambda 表达式作为参数,第一次调用时会执行 Lambda 表达式,以后调用该属性会返回之前的结果。
例如下面的代码:
val str: String by lazy{println("aaron")println("cafei")"tony" // 最后一行为返回值}fun main(args: Array
1239 天前 / ScalaCool
最近阅读一些关于 Kotlin 类型系统方面的书,发现 Kotlin 的类型系统针对 null 有着独特的设计哲学。在 Java 或者其它编程语言中,经常会出现 NullPointerException,而导致此异常的重要原因是因为你可以写 String s = null 这样的代码。其实可以认为这是 Java 等语言类型系统设计的一个缺陷,它们允许 null 可以作为任何类型的值! 但是在 Kotlin 中,如果你声明 val s: String = null,那么编译器会给你一个 error,因为在 Kotlin 中,你不允许把一个 null 值赋给一个普通的类型。
1248 天前 / nekocode
首发于『Android 还可以这样开发』写文章Kotlin 101nekocodehttps://nekocode.cn16 人赞了该文章Kotlin 简介2011 年,作为全球最先进 IDE 开发商之一的 JetBrains 揭露了一项正处于开发中的编程语言 —— Kotlin。它是一门跑在 JVM 上,和 Java 间具有高互操作性的全新语言。JetBrains 通过多年来和各种编程语言打交道的经验,为 Kotlin 整合了多项现代编程语言特性。 2017 年,Google 在 I/O 大会上宣布将 Kotlin 作为 Android 开发的官方支持语言。
1255 天前 / ScalaCool
我们在Dive Into Kotlin(二):Kotlin 类型结构设计中已经对Kotlin的类型系统进行过大致的介绍。 文中提到过: Any 类型是 Kotlin 中 所有非空类型(ex: String, Int) 的根类型。 当我们需要和 Java 互操作的时候,Kotlin 把 Java 方法参数和返回类型中用到的 Object 类型看作 Any(更确切地说是当做「平台类型」)。当 Kotlin 函数中使用 Any 时,它会被编译成 Java 字节码中的 Object。 什么是平台类型 平台类型本质上就是 Kotlin 不知道可空性信息的类型—所有 Java 引用类型在 Kotlin 中都表现为平台类型。
1261 天前 / Tony沈哲
圣诞即将来临.jpg一. 基准测试基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。 基准测试是一种测量和评估软件性能指标的活动。你可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。 二. JMHJMH(Java Microbenchmark Harness) 是专门用于进行代码的微基准测试的一套工具API,也支持基于JVM的语言例如 Scala、Groovy、Kotlin。
1268 天前 / Tony沈哲
猫.jpg一. Lifecycle目前,AAC(Android Architecture Components简称) 已经是 Android Jetpack 的一部分。Lifecycle 是 AAC 其中的一个组件,Lifecycle 能够管理 Activity 和 Fragment 的生命周期。 Lifecycle 可以构建感知生命周期的组件 —— 这些组件根据 Activity、Fragment 的当前生命周期状态自动调整其行为。并且,LiveData 与 ViewModel 的 lifecycle 也依赖于 Lifecycle。 二. 创建 LifecycleObserver 的实现类首先,创建一个 LifecycleObserver 接口的实现类 LifecycleCoroutineListener...
1272 天前 / 大笨钟
简述: 今天我们来讲点Kotlin中比较时髦的东西,有的人可能会说:“不像你之前的风格啊,之前的文章不是一直在死扣语法以及语法糖背后秘密。当你还在死扣泛型语法的时候,别人的文章早就说了Kotlin/Native和Kotlin1.3的新特性”。瞬间感觉自己out了,今天我们就说说这些时髦的东西,也许你能看到一些和别人不一样的东西哦。 前段时间你们的熊猫小哥哥(也就是我),由于对Kotlin过度热爱,一天偶然看到2018 JetBrains开发者日-Kotlin专场活动,脑袋一热,瞬间心动了,马上就买了门票和火车票去北京(第一次一个人去北京)参加活动了。
1281 天前 / Tony沈哲
巴伐利亚高山.jpg在前一篇文章《使用 Kotlin + Spring Boot 进行后端开发》中,曾介绍过尝试使用 Kotlin 来做后端开发。这一次,尝试 WebFlux 以及协程。 首先,在build.gradle中添加插件和依赖的库。 plugins {id 'java'id 'org.jetbrains.kotlin.jvm' version '1.3.10'id "org.jetbrains.kotlin.plugin.allopen" version "1.3.10"}ext {libraries = [rxjava : "2.2.2",logback : "1.2.3",spring_boot : "2.1.0.RELEASE",kotlinx_coroutines_core : "1.0.1"]}group 'com.kotlin.tutorial'version...
1286 天前 / 大笨钟
首发于xiangzhihong的专栏写文章Kotlin入门与实战向治洪工程师注:本部分内容来源于《Kotlin入门与实战》,预计月底上市。 16.1 Kotlin Native16.1.1 Kotlin Native简介Kotlin Native是一种将Kotlin源码编译成不需要任何VM支持的目标平台二进制数据的技术,编译后的二进制数据可以直接运行在目标平台上,它主要包含一个基于LLVM的后端编译器的和一个Kotlin本地运行时库。设计Kotlin Native的目的是为了支持在非JVM环境下进行编程,如在嵌入式平台和iOS环境下,如此一来,Kotlin就可以运行在非JVM平台环境下。
1290 天前 / Tony沈哲
小舟.jpgKotlinKotlin 是一个基于 JVM 的编程语言,它的简洁、便利早已不言而喻。Kotlin 能够胜任 Java 做的所有事。目前,我们公司 C 端 的 Android 产品全部采用 Kotlin 编写。公司的后端项目也可能会使用 Kotlin,所以我给他们做一些 demo 进行演示。 示例一:结合 Redis 进行数据存储和查询1.1 配置 gradle在build.gradle中添加插件和依赖的库。 plugins {id 'java'id 'org.jetbrains.kotlin.jvm' version '1.3.0'}ext {libraries = [rxjava : "2.2.2",logback : "1.2.3",spring_boot : "2.1.0....