引言:
在java中编写私有变量,一般都会给出set/get方法。
在kotlin中,使用var定义变量,编译器会自动生成set/get方法
遇到的问题
给 Toolbar 设置返回按钮图片时,用java实现,调用setNavigationIcon(R.mipmap.ic_launch)就可以实现。
由图片可以看出Toolbar源码类中给出了方法重载setNavigationIcon
可是,我用kotlin来调用时,按照我的想法,我就直接使用了toolbar.navigationIcon=R.mipmap.ic_launch
万万没想到,编译器报错,Required:Drawable? Found:Int。
猜想
我使用java编写一个类,添加两个私有变量,生成set/get方法
在kotlin中调用,当调用w=0.5的时候不会报错,可是调用w=5的时候会报错,原因是在java中没有定义相应的get方法。
总结
当使用kotlin调用java重载方法时,如果没有相应的get方法,则使用时直接set,便不能直接用变量=来写了。