博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kotlin-实战迁移项目(一)
阅读量:4100 次
发布时间:2019-05-25

本文共 1451 字,大约阅读时间需要 4 分钟。

  说到基础就想起的是面向对象、封装、继承、多态......之类的,以前学习kotlin的时候都是从上学习简单的东西。学习完之后新需求就迎面而来,重构项目的计划就搁浅了(当时自己也真是想当然的以为kotlin没啥东西)。最近空余时间终于下手了公司项目才发现迁移起来有多麻烦

  java上面一个数据类型比如user ,省去了set、get方法。

data class User2(var name: String?, var age: Int?)data class User3 {    var name: String? = null    var age: Int? = 0    var address: String? = null}

两种写法其实都正确,但是迁移过的项目里面就两种都有,作为一个强迫症患者肯定是忍受不了这个事儿的。

2 “ ? ” 和 “ !! ” 到底是啥区别为啥有的地方需要“ ? ” ,有的地方只能用“ !! ''。然后问了问度娘才知道

"?"系统在任何情况不会报异常。

"!!"对象为null,系统一定报异常! 

3 数据类型的规范,想想我们java的  valueof()之类的强制类型转化,kt中使用  as Int ,as String

String.valueOf();   Integer.valueOf();   Integer.parseInt()

4 构造器

java构造器可以分为无参构造器和有参构造器(123....),没有主次之分。 kotlin有一个主构造(放在类名后面)和多个次构造

5 静态参数的区别 java放在普通class用final修饰  kontlin放在object里面用val修饰

6 静态kotlin用 object词修饰类名,java用static修饰方法

kotlin:object RegexUtils {    /**     * 匹配手机号     */    private val PATTERN_MOBILE =        Pattern.compile("^[1][3456789][0-9]{9}")  /**     * 判断是否是手机号码     */    fun isMobile(text: String?): Boolean {        return !TextUtils.isEmpty(text) && PATTERN_MOBILE.matcher(text).matches()    }}java:public class RegexUtil {      /**     * 匹配手机号     */    private static final Pattern PATTERN_MOBILE = Pattern.compile("^[1][3456789][0-9]{9}");  /**     * 判断是否是手机号码     */    public static boolean isMobile(String text) {        return !TextUtils.isEmpty(text) && PATTERN_MOBILE.matcher(text).matches();    }}

7 konlin中不能使用三目表达式

以上就是整合项目中的一小部分理解,至于mvp转化成mvvm,Androidx升级和jetpack新框架的使用后面等语文学好了再来描述。

转载地址:http://cnwsi.baihongyu.com/

你可能感兴趣的文章
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
单列模式-编写类ConfigManager读取属性文件
查看>>
java中float和double的区别
查看>>
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
JSTL 常用标签总结
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>