我是科特林的新手。我包含了一个我想使用的库,但是在访问它的类时,出现错误消息:“无法访问'
答案 0 :(得分:4)
该错误表示构造函数是私有的。给定您的comment,我假设您正在使用一个库。在这种情况下,您将不得不找到另一种初始化方式。一些库具有类的工厂或构建器,因此请查找任何适用的文档(如果是库或框架)。其他人也使用单例模式或其他形式的初始化,而开发人员则不使用构造函数。
但是,如果这是您的代码,请从构造函数中删除private
。如果它是internal
,并且您正在尝试在模块外部访问它,请删除internal
。另外,您可以自己使用构建器模式,工厂模式或任何类似的模式。
答案 1 :(得分:0)
当尝试在另一个文件中扩展密封类时遇到了这个问题。没有看到库代码,很难知道这是否也是您要尝试的操作。
密封类具有以下独特功能:
密封类可以具有子类,但是所有子类必须与密封类本身在同一文件中声明。
密封类本身是抽象的,不能直接实例化,并且可以具有抽象成员。
不允许密封类具有非私有构造函数(默认情况下,它们的构造函数是私有的)。
扩展密封类的子类的类(间接继承程序)可以放置在任何地方,不一定在同一文件中。
有关更多信息,请阅读https://www.ericdecanini.com/2019/10/14/kotlins-sealed-class-enums-on-steroids/
希望这将对也遇到此问题的Kotlin新手有所帮助。