Kotlin 学习使用之旅(二)
为什么从二开始呢?再此之前已经有了一篇了,那是刚知道kotlin的时候草(chao)来(chao)的并且学习一篇,
这次是自己在项目中正式使用并且遇到的一些问题记录,供kotlin新入门的童鞋参考,避免我的弯路(当然,这里的都是其他地方会有的,因为我也是在边学边记录)
难点理解:
1. !!符号 (不能为空,如果空也会抛异常)
2. ? 号 (可以为空,如果是空则返回-1)
解释如下:
//类型后面加?表示可为空
var age: String? = "23"
//抛出空指针异常
val ages = age!!.toInt()
//不做处理返回 null
val ages1 = age?.toInt()
//age为空返回-1
val ages2 = age?.toInt() ?: -1
*/
3.继承,实现
如果继承的类,那么是 :类名() 如果实现接口是 : 接口类名 即可 4.在java中构造或者方法中,参数名称,参数数量相同,但是参数类型不同即可根据参数位置的类型调用对应的构造方法,或者方法,但是在kotlin中不行,找了半天网上确实没找到,自己翻译报错,看了半天
最终搞定了,原话如下:
错误:(44, 25) None of the following functions can be called with the arguments supplied:
public constructor DefaultFragmentAdapter(fm: FragmentManager!, titleArray: ArrayList<String!>!, fragmentShow: ((positon: Int) -> Fragment!)!) defined in com.suxuantech.erpsys.ui.adapter.DefaultFragmentAdapter
public constructor DefaultFragmentAdapter(fm: FragmentManager!, titleArray: ArrayList<String!>!, fragmentShow: DefaultFragmentAdapter.FragmentShow!) defined in com.suxuantech.erpsys.ui.adapter.DefaultFragmentAdapter
public constructor DefaultFragmentAdapter(fm: FragmentManager!, mCount: Int, fragmentShow: ((positon: Int) -> Fragment!)!) defined in com.suxuantech.erpsys.ui.adapter.DefaultFragmentAdapter
public constructor DefaultFragmentAdapter(fm: FragmentManager!, mCount: Int, fragmentShow: DefaultFragmentAdapter.FragmentShow!) defined in com.suxuantech.erpsys.ui.adapter.DefaultFragmentAdapter
翻译:在提供的参数中不能调用下列函数:
这里主要是因为Kotlin语言问题,因为kotlin不算强类型,也算不上弱类型,他会自己推断传入的对应的强类型,因为你传入的var类型不明确,所以你需要使用你想用的哪个方法对应的类型进行转换即可, 或者 as 当然as 必须是有继承类型的,不同类型的,会转换失败 5.匿名接口实现:
viewPager!!.addOnPageChangeListener(object : OnPageChangeListener{
override fun onPageScrollStateChanged(state: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPageSelected(position: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
6. 关于重写:重写之后默认会有todo ,java没问题,但是kolin 要求你一定要写一些东西,如果不写你可以把todo删除即可
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
7.拉姆达:挺坑爹的
接口只有一个方法且参数只有一个的:

Kotlin 学习使用之旅(二)的更多相关文章
- Kotlin开发springboot项目(二)
Kotlin开发springboot项目(二) 中文学习网站: https://www.kotlincn.net/ 研究一下kotlin的demo: https://github.com/JetBra ...
- Kotlin学习笔记(9)- 数据类
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步! Kotlin学习笔记(1)- 环境配置 Kotlin学习笔记(2)- 空安 ...
- 我的MYSQL学习心得(十二) 触发器
我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(2)花式捆绑
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- css学习归纳总结(二) 转
原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...
- 学习jQuery之旅
早就听说了Jquery的大名,一直没有细心的学习一下,通过阅读收集的一些资料,感觉Jquery真的很强大.决定开始自己的学习Jquery之旅.在这里不是为大家讲解Jquery(深知水平有限),只是将自 ...
- 【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型
[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698. ...
随机推荐
- 【bzoj4579】[Usaco2016 Open]Closing the Farm 并查集
题目描述 Farmer John and his cows are planning to leave town for a long vacation, and so FJ wants to tem ...
- JavaScript 面向对象开发知识基础总结
JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精 ...
- [NOIP2017]逛公园 最短路图 拓扑序DP
---题面--- 题解: 挺好的一道题. 首先我们将所有边反向,跑出n到每个点的最短路,然后f[i][j]表示从i号节点出发,路径长比最短路大j的方案数. 观察到,如果图中出现了0环,那么我们可以通过 ...
- harbor1.4.0高可用部署
一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数,所以可使 Parent 构造函数成为 Children 的方法,然 ...
- 一条数据的HBase之旅,简明HBase入门教程-Write全流程
如果将上篇内容理解为一个冗长的"铺垫",那么,从本文开始,剧情才开始正式展开.本文基于提供的样例数据,介绍了写数据的接口,RowKey定义,数据在客户端的组装,数据路由,打包分发, ...
- thread-wait/sleep
对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...
- 使用javaScript和JQuery制作经典面试题:光棒效果
使用javaScript与jQuery添加CSS样式的区别和步骤 使用javaScript制作光棒效果 --首先是javaScript <script> $(function () { v ...
- 【线段树】【P3740】 [HAOI2014]贴海报
传送门 Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规 ...
- 使用localhost调试本地代码,setcookie无效
今天在本地调试代码的时候,再域名中使用localhost,结果一直调试不成功,最后发现在登录时,setcookie()没有设置进去 于是发现了,在使用localhost调试时,保存cookie是无效的 ...
- [SCOI2009]生日礼物
https://www.luogu.org/problem/show?pid=2564 题目描述 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x ...