kotlin调用java代码思考(一)

引言:

在java中编写私有变量,一般都会给出set/get方法。
在kotlin中,使用var定义变量,编译器会自动生成set/get方法


遇到的问题

给 Toolbar 设置返回按钮图片时,用java实现,调用setNavigationIcon(R.mipmap.ic_launch)就可以实现。

image.png

由图片可以看出Toolbar源码类中给出了方法重载setNavigationIcon
可是,我用kotlin来调用时,按照我的想法,我就直接使用了toolbar.navigationIcon=R.mipmap.ic_launch
万万没想到,编译器报错,Required:Drawable? Found:Int。

猜想

我使用java编写一个类,添加两个私有变量,生成set/get方法


image.png

在kotlin中调用,当调用w=0.5的时候不会报错,可是调用w=5的时候会报错,原因是在java中没有定义相应的get方法。


image.png

总结

当使用kotlin调用java重载方法时,如果没有相应的get方法,则使用时直接set,便不能直接用变量=来写了。

你可能感兴趣的:(kotlin调用java代码思考(一))