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

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,否则内部类是无法调用父类属性的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值