kotlin internal 关键字使用

一、前言:

internal 修饰类的方法,表示这个类方法只适合当前module使用,如果其他module使用的话,会找不到这个internal方法或者报错。下面我们在moduleA创建一个类 Apple ,里面有两个输出的方法。

class Apple() {
      fun appleLog(){
            Log.i("debug=","appleLog")
        }
       internal fun appleInternalLog(){
            Log.i("debug=","appleInternalLog")
        }

}

然后在 moduleB 创建 kt 类,调用 Apple 的方法,发现只有appleLog方法可以调用,而appleInternalLog 方法则是不显示。

Apple().appleLog()

再来,我们在 moduleB 创建 java 类,调用 Apple 的方法 ,

void text(){
    new Apple().appleInternalLog$production_sources_for_module_arms();//报错,usage of kotlin internal declaration from different module
    new Apple().appleLog(); //正常。
}

总结
所以 internal 限制了跨 module 的方法的使用

你可能感兴趣的:(kotlin internal 关键字使用)