将现有Android Studio项目转化为Kotlin项目

栏目: 编程工具 · Android · 发布时间: 7年前

内容简介:将现有Android Studio项目转化为Kotlin项目

现在Android Studio支持Kotlin了,大家是不是激动的不要不要的,是不是想现在就开始用Kotlin进行编程,不要 Java 了。。。人总是这样,喜新厌旧!!!不过Kotlin是有自己的吸引人的地方,下面就带领大家尝试一下将自己的项目转变一下。

目录

  • 一、将项目导入Android Studio 3
  • 二、使自己的项目支持Kotlin
  • 三、编写Kotlin类并在Java中引用
  • 四、将原有的Java类转换成Kotlin类

一、将项目导入Android Studio 3

这个本来不想讲的,结果自己在导入的时候遇到了一个问题,解决方案如下: Android Studio 3.0的does not support the forTasks() method on BuildActionExecuter错误

二、使自己的项目支持Kotlin

这个也非常简单,直接在项目中加入一个Kotlin类,然后Android Studio会提示你设置Kotlin。加入类的方法和新建Java类是一样的,在文件夹(或项目上)右键,New->Kotlin Files/Class。

加入类后就会有提示了,如下图所示:

将现有Android Studio项目转化为Kotlin项目

建议选择“All modules”,这样你的项目中所有的模块都支持Kotlin了。

三、编写Kotlin类并在Java中引用

这里随便写了一个类:

data class Person(var name: String, var age: Int, var height: Float = 1.8f)

如果你对这个类意义并不是很明确,可以参照: Kotlin中的data类–为数据而生,为数据而美

然后在MainActivity中的OnCreate方法中加入

Person p1=new Person("RileyGe",30, 1.8f);
Toast.makeText(this.getBaseContext(),p1.getName(),Toast.LENGTH_SHORT).show();

?一切运行正常。但也遇到了一个问题:在Kotlin中height有默认值,所以理论上可以用下面的方法调用:

Person p1=new Person("RileyGe",30);
Toast.makeText(this.getBaseContext(),p1.getName(),Toast.LENGTH_SHORT).show();

但实际遇到了下面这个问题:

将现有Android Studio项目转化为Kotlin项目

这说明Java文件对Kotlin类的支持并不是很好,一些先进的特性并不支持。我在网络上搜索了一下也没有找到具体哪些支持,哪些不支持。我会在Kotlin的网站好好查找一下,有结果再分享给大家。

四、将原有的Java类转换成Kotlin类

大家可能也都知道,在Android Studio中,从Code菜单里面有“Convert Java File to Kotlin File”,我用这个方法转化了一下我的MainActivity类,一下子出现好多错误:

将现有Android Studio项目转化为Kotlin项目

错误类型比较一致,主要集中在Kotlin对null的检查与要求上,具体的应对方法如下: In Kotlin, what is the idiomatic way to deal with nullable values, referencing or converting them

最后总结一下:让现有的项目支持Kotlin还是非常简单而且安全的,但要让项目完全从Java转到Kotlin,需不少的手动工作,所以如果已经编写完成的类就不要改为Kotlin了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序设计语言理论基础

程序设计语言理论基础

米切尔 / 电子工业出版社 / 2006-11 / 68.00元

本书提出了一个框架,用于分析程序设计语言的语法、操作和语义性质,该框架基于称为类型化λ演算的数学系统。λ演算的主要特色是对于函数和其他可计算的值的一种记法,以及一个等式逻辑和用于表达式求值的一组规则。本书中最简单的系统是称为泛代数的一个等式系统,它可以用来公理化和分析通常用于程序设计的许多数据类型。可作为理论计算机科学、软件系统和数学专业的大学本科高年级或者研究生初始学习阶段的教材,同时也适合用于......一起来看看 《程序设计语言理论基础》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具