遇到Kotlin使用中的问题,及解决办法

来源:互联网 发布:网络平面设计课程 编辑:程序博客网 时间:2024/05/17 02:15

1.使用Activity的this对象。
在Activity中经常要用到Context,在Java中这很容易,假如当前Activity是MainActivity。那么在这个Activity的任何地方,都可以使用MainActivity.this获得Activity的对象。
但是在使用Kotlin时,网上能够查到的代码都是这样获取Activity对象的

MainActivity@this

在一般情况下这样写是没问题的,但是今天我遇到的情况MainActivity@this这种方式失效了,通过使用Java转Kotlin工具,发现在我的使用场景下要使用

this@MainActivity

这种方式才能正确获取到Activity的对象,暂时还没有查到这两种写法的具体区别是什么,但是从效果上来看,更通用,不会出错的写法是第二种。
2.使用foreach的时候,默认it代表当前遍历到底元素。但是当foreach嵌套使用的时候,就会出现一个很尴尬的情况,里层和外层的foreach都能够使用it,而且他们代表的含义还不同,并且这个it我还没发现什么手段能改名字。。。。所以解决方法,会有嵌套使用的情况不要使用foreach。。。

3.在kotlin中,使用匿名类是可以写成Lamda表达式形式的,一般情况下这样做是没问题的,但是如果想要在回调方法中使用这个匿名类的指针,那么不要用Lamda表达式形式来写,要用object: 类名的形式来写,即便这个类只有一个方法。因为用Lamda表达式后,无法用this引用到这个匿名类对象。

4.在用Java开发时,内部类可以很轻易的调用父类的属性,但是在Kotlin里,如果内部类想调用父类的属性,那么这个类必须被显示的修饰成inner class,否则内部类是无法调用父类属性的

阅读全文
0 0
原创粉丝点击