kotlin

Kotlin——中级篇(六):数据类(data)、密封类(sealed)详解

扶醉桌前 提交于 2020-08-16 08:34:53
在前面几个章节章节中,详细的讲解了 Koltin 中的 接口类(Interface) 、 枚举类(Enmu) ,还不甚了解的可以查看我的上一篇文章 Kotlin——中级篇(五):枚举类(Enum)、接口类(Interface)详解 。当然,在 Koltin 中,除了 接口类、枚举类 之外,还有 抽象类、内部类、数据类 以及 密封类 。在今天的章节中,为大家详细讲解 数据类 和 密封类 。在下一章节中,再为大家奉上 Kotlin 中的 抽象类 以及 内部类 的知识。如果还对 Kotlin 中 类 的分类还不清楚的可以查看我的另一篇博文 Kotlin——中级篇(一):类(class)详解 。 目录 一、数据类 在 Java 中,或者在我们平时的 Android 开发中,为了解析后台人员给我们提供的接口返回的 Json 字符串,我们会根据这个字符串去创建一个 类 或者 实例对象 ,在这个类中,只包含了一些我们需要的数据,以及为了处理这些数据而所编写的方法。这样的类,在 Kotlin 中就被称为 数据类 。 1、关键字 声明数据类的关键字为: data 1.1、声明格式 data class 类名(var param1 :数据类型,...){} 或者 data class 类名 可见性修饰符 constructor(var param1 : 数据类型 = 默认值,...) 说明: data

【Kotlin学习之旅】Kotlin的字符串类型

不想你离开。 提交于 2020-08-16 03:55:04
一、字符串类型介绍 Kotlin的字符串有两种字面值(Literal),分别如下所示: 类型 描述 转义字符串 转义字符串可以有转义字符,转义字符串很像Java字符串 原始字符串 原始字符串可以包含换行和任意文本。原始字符串需要用3个引号引起来。 二、字符串类型示例代码 如下所示: fun stringTest ( ) { //定义普通字符串 var str = "欧阳鹏" println ( str . length ) //定义原始字符串 val text = """ |欧阳鹏 |一个人,如果你不逼自己一把,你根本不知道自己有多优秀! |https://ouyangpeng.blog.csdn.net/ |CSDN """ . trimMargin ( ) println ( text ) // 前置空格删除了 } 上面程序,第一个普通字符串str 使用的是转义字符串,这种字符串和Java字符串基本相同。 第二个字符串text 使用的是Kotlin的原始字符串,用3个引号引起来的部分都是字符串的内容,包括换行符等各种特殊字符。 编程时,考虑到程序格式,往往在原始字符中进行一些缩进,但是这些缩进并不是原始字符希望包含的。此时可以使用 trimMargin() 方法来去掉原始字符串前面的缩进。 默认情况下,Kotlin使用竖线(|)作为边界符。 也就是说,所有竖线(|

日常记录——JVM—JVM简介、class文件解析

99封情书 提交于 2020-08-16 00:05:52
一、JVM简介 JVM :Java Virtual MAchine-Java虚拟机,可以将class文件解释为各种平台可执行的指令行,java中一个类在运行时,首先将java文件编译(javac)为class文件,然后jvm将class文件解释并执行。 JVM可分为三部分:类加载器(ClassLoader)系统、执行引擎、运行时数据区。 类加载器系统 :负责加载程序中的类和接口。 执行引擎 :解释执行+即时编译(JIT),开始对所有的代码都采取解释执行的方式,经常调用的热点方法编译为本地代码(热点代码频率设置-XX:CompileThreshould = 值(默认10000)),默认是解释执行+即时编译(-Xmixed)模式,可设置为纯解释(-Xint)或者纯编译(-Xcomp)模式,纯解释加载快,执行慢,纯编译加载慢,执行快。 运行时数据区 :程序计数器、本地方法栈、虚拟机栈、堆、方法区。 1.程序计数器:指向当前线程所执行的字节码的行号,线程私有。 2.本地方法栈:存储本地方法调用的状态,Native方法,线程私有。 3.虚拟机栈:存储局部变量表,操作数栈,动态链接,方法出口等信息,线程私有。 4.堆:虚拟机启动时创建,存放对象实例和数组,GC工作区域,线程共享。 5.方法区:存储类的信息,如常量(final)、静态变量(static)、JIT(即时编译器)编译后的代码

Android 开发技术周报 Issue#289

牧云@^-^@ 提交于 2020-08-15 07:57:33
新闻 谷歌将在今年秋季推出的Android 11中增加117个新emoji表情 谷歌计划在Android 11中默认禁用过度扭曲的美颜滤镜 谷歌可能在8月推出Android 6.0以上设备的Nearby Share特性 谷歌推出免费的 Kotlin 和 Android 开发课程 Android 11 Beta 2 和平台稳定性里程碑 教程 一个依赖库更新引发的血案:QQ 号被冻结技术分析 ARCore Depth API 深度解析:算法原理及开发细节 协程中的取消和异常 | 异常处理详解 Kotlin Vocabulary | 唯一的「对象」 今日头条 Android '秒' 级编译速度优化 开源库 ColorSeekBar A colorful SeekBar for picking color pine a dynamic java method hook framework on ART runtime, it can intercept almost all java method calls in this process. ExpandableRecyclerView 可展开的RecyclerView(带有展开和关闭动画) ticktock A timezone data management library for the JVM and Android

How should I fetch images under an array using retrofit

∥☆過路亽.° 提交于 2020-08-15 05:54:06
问题 I have images under array...here is my json: { "status": 200, "data": { "id": 1, "product_category_id": 1, "name": "Centre Coffee Table", "producer": "Luna", "description": "Mild Steel Base In Poder Coated White Finish.8 mm Tempered Glass Table Top.Bottom Shelf In Paimted Brown Glass.", "cost": 5000, "rating": 3, "view_count": 21243, "created": "2015-09-07T09:24:05+0000", "modified": "2020-07-27T10:52:42+0000", "product_images": [ { "id": 1, "product_id": 1, "image": "http://staging.php-dev

Work Manager on chinese ROMs like Xiaomi and oppo, when under battery optimization, increase the scheduled delay of work by several hours

末鹿安然 提交于 2020-08-15 05:48:50
问题 Work Manager on Chinese ROMs like Xiaomi and Oppo, when under battery optimization, increase the scheduled delay of work by several hours., however, I have noticed some apps like life360 are able to have scheduled jobs run quietly flawlessly even under battery optimization. There is one difference I noticed is that they show a notification every time the job runs, so would that be responsible for keeping the app alive by the battery optimizer? And I also noticed, that after I force stopped

Work Manager on chinese ROMs like Xiaomi and oppo, when under battery optimization, increase the scheduled delay of work by several hours

孤街醉人 提交于 2020-08-15 05:47:31
问题 Work Manager on Chinese ROMs like Xiaomi and Oppo, when under battery optimization, increase the scheduled delay of work by several hours., however, I have noticed some apps like life360 are able to have scheduled jobs run quietly flawlessly even under battery optimization. There is one difference I noticed is that they show a notification every time the job runs, so would that be responsible for keeping the app alive by the battery optimizer? And I also noticed, that after I force stopped

Work Manager on chinese ROMs like Xiaomi and oppo, when under battery optimization, increase the scheduled delay of work by several hours

强颜欢笑 提交于 2020-08-15 05:46:10
问题 Work Manager on Chinese ROMs like Xiaomi and Oppo, when under battery optimization, increase the scheduled delay of work by several hours., however, I have noticed some apps like life360 are able to have scheduled jobs run quietly flawlessly even under battery optimization. There is one difference I noticed is that they show a notification every time the job runs, so would that be responsible for keeping the app alive by the battery optimizer? And I also noticed, that after I force stopped

Kotlin开发问题记录

自作多情 提交于 2020-08-14 13:43:00
问题:Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath 报错代码 类名:: class . java . simpleName 解决办法 implementation "org.jetbrains.kotlin:kotlin-reflect: $kotlin_version " ------------- 来源: oschina 链接: https://my.oschina.net/yuewawa/blog/4463014

【Kotlin学习之旅】Kotlin的类型别名typealias

南笙酒味 提交于 2020-08-14 08:35:46
一、类型别名typealias介绍 Kotlin提供了类似于C语言的 typedef 的功能:可以为已有的类型指定另一个可读性更强的名字。Kotlin提供了 typealias 来定义类型别名。 typealias语句的语法格式为: typealias 类型别名 = 已有类型 如果类型名称太长,你可以另外引入较短的名称,并使用新的名称替代原类型名。 它有助于缩短较长的泛型类型。 例如,通常缩减集合类型是很有吸引力的: // 为Set<Network.Node> 指定更短的别名NodeSet typealias NodeSet = Set < Network . Node > // 为MutableMap<K, MutableList<File>> 指定更短的别名FileTable<K> typealias FileTable < K > = MutableMap < K , MutableList < File > > 接下来即可直接使用NodeSet 和FileTable 命名变量。 var set : NodeSet var table : FileTable < String > 你可以为函数类型提供另外的别名: typealias MyHandler = ( Int , String , Any ) -> Unit typealias Predicate < T > = (