kotlinx(kotlin使用时遇到的问题(一))

本文目录
kotlin使用时遇到的问题(一)
一.当创建android项目时,默认是java形式的activity,如果想要使用kotlin,就要将某个activity转换为kotlin形式的。
使当前窗口显示的界面是要转换的界面,点击code--》convert Java File to Kotlin File
转换完毕后界面就变成了kotlin形式
二.查看build.gradle中并没有出现kotlin的配置,这时可以运行下项目,然后就会在activity的右上角出现configure,点击configure就可以配置kotlin应用范围和版本了。
选择配置
点击ok 等待自动配置kotlin,配置完毕后根build.gradle下后出现
module下的build.gradle会出现
三.运行时报错 unresolved reference kotlinx
这是因为没有添加kotlin的相关插件
在app的build.gradle下添加
apply plugin: ’kotlin-android-extensions’
四.因为使用kotlin之后,不需要再写findViewById(),需要用到
而这个包是在kotlin的extensions插件下。
xutils可以使用kotlin开发吗
What is Kotlin
Kotlin,原意是在俄罗斯的一个小岛,JetBrain在2011年推出了以这个来命名的一个运行在JVM上的语言, 看上去有点类似C#和Scala的结合,并且同为静态类型,作为一门JVM上的语言,可以轻松兼容Java,并且整个语言设计的非常轻量。目前的版本为0.12.200,尚未发布正式版。
Kotlin的下载和配置在其官网上有,在这里就不再赘述了,值得一提的是,作为JetBrains家出品的语言,自家的IDEA当然全力支持!
基本语法介绍
Kotlin的语法非常简洁,熟悉Java或者Scala的人都可以快速上手:
函数声明:
fun foo(va: Int): Int {
return 1
}
也可以单行声明:
fun foo(va: Int): Int = 1
lambda当然也是支持的:
var c = {foo: Int -》 println(foo)}
Kotlin中的函数是一等对象,自然支持高阶函数:
var c = {foo: Int -》 println(foo)}
fun fooTest(func: (Int)-》()) = println("I’m Groot")
fooTest(c)
类与接口
类可以这样进行声明:
class Bar(var b: Int): Foo() {
var c = 1
init {
println("class initializer")
}
constructor(): this(1) {
println("secondary constructor")
}
}
Bar类在这里继承了Foo类,Bar类有两个构造函数,直接在Bar类头的是primary constructor,另外一个构造函数使用constructor关键字定义,注意必须要先调用primary constructor,另外,init标明的是class initializer,每个构造函数都会首先调用class initializer里面的代码,再调用构造函数
Inner class:
class Outer {
class Inner {
}
}
Kotlin同样支持嵌套的内部类,不过和Java不一样的是,Kotlin的内部类不会默认包含一个指向外部类对象的引用,也就是说,Kotlin中所有的内部类默认就是静态的,这样可以减少很多内存泄露的问题。另外,如果需要在内部类中引用外部类对象,可以在Inner类的声明前加上inner关键字,然后在Inner类中使用标记的this:this@Outer来指向外部类对象
Singleton:
object Single {
var c = 1
fun foo() = println("foo")
}
Kotlin中使用object关键字声明一个singleton对象,后面这里的方法就可以直接使用Single.foo()来调用了

更多文章:
下载mysql的步骤(win10安装mysql的步骤和方法)
2026年9月7日 04:10
checked in(check in和check out的区别)
2026年9月7日 01:20
java经典上机编程题(java上机题 请问这道题应该怎么写)
2026年9月7日 01:10
影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧
2026年9月7日 00:30
mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)
2026年9月7日 00:10
linux命令的选项和参数(linux为什么要有参数和选项)
2026年9月6日 20:20






