2018年12月19日

Java 8 Lambda 表达式

摘要: Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中) 使用 Lambda 表达式可以使代码变的更加简洁紧凑 以下是lambda表达式的重要特征: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。 可选 阅读全文

posted @ 2018-12-19 17:47 LoaderMan 阅读(276) 评论(0) 推荐(0)

利用socket实现聊天-Android端核心代码

摘要: 实体类与服务端报错一致,包括包名 数据库设计 传输对象 工具类 客户端实现 消息服务 消息广播 阅读全文

posted @ 2018-12-19 17:35 LoaderMan 阅读(446) 评论(0) 推荐(0)

利用sorket实现聊天功能-服务端实现

摘要: 工具包 传输对象建立 实体类 数据库建立 服务器实现 完成 阅读全文

posted @ 2018-12-19 17:15 LoaderMan 阅读(668) 评论(0) 推荐(0)

kotlin 之内联函数

摘要: 在lambda表达式内联函数,需要在定义函数使用inline关键字 未使用inline关键字 使用inline 关键字 输出一样 但注意的是,要内联的函数带的lambda不宜过大,否则会造成生产class文件过大 内联部分lambda表达式 关键字noinline不会内联调用函数 阅读全文

posted @ 2018-12-19 17:00 LoaderMan 阅读(1072) 评论(0) 推荐(0)

kotlin之函数的范围和泛型函数

摘要: kotlin 中函数可以定义为局部函数,成员函数以及扩展函数 局部函数:就是嵌套在函数内的函数 成员函数就是定义在类或者对象之内的函数 泛型函数就是函数可以带有泛型参数,可通过尖括号来指定 阅读全文

posted @ 2018-12-19 16:22 LoaderMan 阅读(780) 评论(0) 推荐(0)

kotlin函数的参数和返回值

摘要: 如果函数为多行语句,那么就必须指定返回值类型,除非这个函数打算返回Unit(不返回任何值) 阅读全文

posted @ 2018-12-19 16:17 LoaderMan 阅读(7326) 评论(0) 推荐(0)

kotlin 之单表达式函数

摘要: 如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字, 阅读全文

posted @ 2018-12-19 16:11 LoaderMan 阅读(519) 评论(0) 推荐(0)

kotlin使用中辍标记法调用函数

摘要: 所谓中辍表达式:就是将函数名称放在两个操作数中间,这二个操作数,左侧是包含函数的对象或者值,右侧是函数的参数值,并不是所有的函数都支持中辍表达式,必须满足以下条件: 成员函数或者扩展函数 只有一个函数 使用infix关键字声明函数 阅读全文

posted @ 2018-12-19 16:07 LoaderMan 阅读(419) 评论(0) 推荐(0)

kotlin之函数的基本用法

摘要: kotlin函数必须适应fun关键字开头,后面紧跟着函数名,以及一对小括号,小括号中是函数的参数列表,如果函数有返回值,则在小括号后面加冒号: 冒号后面是函数返回值类型 如果foo函数在demo类中,调用如下 阅读全文

posted @ 2018-12-19 15:53 LoaderMan 阅读(500) 评论(0) 推荐(0)

kotlin之lambda表达式和匿名函数

摘要: lambda表达式,称为匿名函数,是一种函数字面值,也就是没有声明的函数,但可以作为表达式传递出去. 函数类型: 对于接受另一个函数的作为自己的参数,必须针对这个参数指定一个函数的类型如 参数less的类型(T,T)->Boolean ,也就是说,它是一个函数,接受二个T类型的参数,并且返回一个Bo 阅读全文

posted @ 2018-12-19 15:45 LoaderMan 阅读(2960) 评论(0) 推荐(0)

kotlin之高阶函数

摘要: 高阶函数是一种特殊的函数,它接受函数作为参数,或者返回一个函数 输出: 阅读全文

posted @ 2018-12-19 15:25 LoaderMan 阅读(645) 评论(0) 推荐(0)

kotlin之MutableMap委托

摘要: MutableMap委托变化是双向的,是一种可读写委托 阅读全文

posted @ 2018-12-19 15:11 LoaderMan 阅读(1453) 评论(0) 推荐(0)

kotlin之map委托

摘要: 使用场景:将map中key-value映射到对象的属性中,这通常在解析json 数据时用到 阅读全文

posted @ 2018-12-19 15:07 LoaderMan 阅读(905) 评论(0) 推荐(0)

kotlin标准委托之阻止属性的赋值操作

摘要: 输出: 总结:使用vetoable函数,响应器会返回一个布尔值,如果返回true,表示允许赋值,false则保留原来的值 阅读全文

posted @ 2018-12-19 14:58 LoaderMan 阅读(523) 评论(0) 推荐(0)

kotlin标准委托之可观察属性

摘要: 所谓可观察属性就是当属性变化时可以拦截其变化,实现观察属性值变化的委托函数是Delegates.observable.该函数接受二个参数,第一个是初始化值,第2个属性值变化事件的响应器.每次我们向属性赋值时,响应器都会被调用,响应器函数的三个函数,被赋值的属性,赋值前旧属性值,以及赋值后的新属性值 阅读全文

posted @ 2018-12-19 14:52 LoaderMan 阅读(405) 评论(0) 推荐(0)

kotlin标准委托之惰性装载

摘要: lazy函数,接受一个lambda表达式作为参数,返回一个Lazy<T> 类型的实例,这个实例可以作为委托,实现惰性加载属性;第一次调用get时,将会执行从lazy函数传入的lambda表达式,然后会记住这次结果,以后所有对get调用都只会简单的返回以前记住的结果 输出 默认情况下,惰性加载属性的执 阅读全文

posted @ 2018-12-19 14:44 LoaderMan 阅读(361) 评论(0) 推荐(0)

kotlin 委托类的初始化函数

摘要: 输出: 阅读全文

posted @ 2018-12-19 14:31 LoaderMan 阅读(809) 评论(0) 推荐(0)

kotlin委托属性

摘要: 输出: 上面代码冗余,所谓委托类,就是一个包含getValue和setValue函数的类,这两个函数operator声明 在使用委托类时,需要by关键字,创建委托类实例的代码放在by后面 如下 输出结果和上面一样! 阅读全文

posted @ 2018-12-19 14:11 LoaderMan 阅读(555) 评论(0) 推荐(0)

kotlin 类的委托

摘要: 可以看出:demo类使用by关键字将base类的printL函数委托给了一个对象.该对象需要通过demo类的主构造器传入,而且该对象类必须实现base接口! 阅读全文

posted @ 2018-12-19 13:49 LoaderMan 阅读(532) 评论(0) 推荐(0)

kotlin陪伴对象

摘要: 在kotlin中并没有静态类成员的概念,但并不等于实现类似于静态类成员的功能,陪伴对象可以解决这个问题 注意:虽然陪伴对象的成员看起来像其他语言中的静态成员,但是在运行期间,这些成员仍然是真正的对象的实例的成员,与静态成员不同,不过使用@jvmStatic进行注释,kotlin编译器会将其编译成by 阅读全文

posted @ 2018-12-19 11:37 LoaderMan 阅读(211) 评论(0) 推荐(0)

kotlin中访问封闭作用内的变量

摘要: 在java中,匿名对象访问封闭作用域内的变量,需要用final 声明变量在java8中,如果只是使用封闭作用域内的变量,该变量并不需要使用final,但是一旦修改值,就需要使用final 来声明变量. 阅读全文

posted @ 2018-12-19 11:25 LoaderMan 阅读(263) 评论(0) 推荐(0)

kotlin中匿名对象

摘要: 总结:匿名对象只能用在本地函数或者private声明中,如果将匿名对象用于public函数的返回值,或者public 属性的类型,那么kotlin编译器会将这些函数或者属性的返回类型重新定义 为匿名对象的父类型.如果匿名对象没有实现任何接口,没有从任何类继承,那么父类型就是Any,因此在匿名对象中的 阅读全文

posted @ 2018-12-19 11:16 LoaderMan 阅读(1913) 评论(0) 推荐(0)

kotlin中对象表达式

摘要: 在kotlin中,也有类似的功能,但不是匿名类,而是对象,需要使用object关键字,对象要继承的列需要与object之间的冒号(:)分隔. 对象和类一样,只能有一个父类,但可以实现多个接口 如果只想建立一个对象,不想任何的类型,也不实现任何的接口,如下: 阅读全文

posted @ 2018-12-19 11:06 LoaderMan 阅读(742) 评论(0) 推荐(0)

kotlin 泛型约束

摘要: 冒号之后指定的类型就是泛型参数的上界,对于泛型参数T,只允许使用Comparable<T>的子类型 阅读全文

posted @ 2018-12-19 10:44 LoaderMan 阅读(1051) 评论(0) 推荐(0)

kotlin 泛型函数

摘要: 调用泛型的函数,应该在函数名称之后指定调用端类型参数: 阅读全文

posted @ 2018-12-19 10:38 LoaderMan 阅读(3219) 评论(0) 推荐(0)

kotlin泛型中星号投射

摘要: 如果一个泛型类型中存在多个类型的参数,那么每个类型的参数都可以单独投射,例如:如果类型定义为:"interface Function<in T,out>",那么可以出现以下的几种星号投射: 阅读全文

posted @ 2018-12-19 10:34 LoaderMan 阅读(1069) 评论(0) 推荐(0)

kotlin 泛型中类型投射

摘要: 上面是有out类型投射,我们声明的含义:from 不是一个单纯的数组,而是一个被限制投射的数组,也可以使用in关键字来投射一个类型 阅读全文

posted @ 2018-12-19 10:30 LoaderMan 阅读(570) 评论(0) 推荐(0)

kotlin泛型类型变异

摘要: 在java泛型中中会有 ? extends E 可以解决类似于List<String> 赋给List<Object> 的问题,但是在kotlin泛型中并没有提供通配符,而是out和in关键字,用out声明的泛型占位符只能在获取泛型类型赋值,如函数的返回值,用in声明的泛型占位符只能在设置泛型类型值得 阅读全文

posted @ 2018-12-19 09:45 LoaderMan 阅读(993) 评论(0) 推荐(0)

kotlin泛型基本使用

摘要: class box (t :T){ var vlaue =t } fun main(arg: Array) { val box1:box = box(20) val box2:box = box("haha") println(box1.vlaue) print(box2.vlaue) } 阅读全文

posted @ 2018-12-19 09:31 LoaderMan 阅读(867) 评论(0) 推荐(0)

导航