我包含了一个我想使用的库,但是在访问它的一个类时,我收到了错误消息,“无法访问”“:它在[类名]中是专用的有没有什么我可以做的,以纠正这对我来说,还是我只是坚持不使用该软件包?
uxhixvfz1#
这个错误意味着构造函数是私有的。根据你的评论,我假设你正在使用一个库。如果是这样的话,你必须找到一个不同的方法来初始化它。一些库有工厂或者类的构造器,所以查阅任何适用的文档(如果它是一个库或框架)。其他的也使用单例模式,或者其他形式的初始化,开发人员不直接使用构造函数。然而,如果它是你的代码,从构造函数中移除private。如果它是internal,并且你试图在模块外访问它,移除internal。记住,the default accessibility is public。或者,如果你想保持构造函数私有或内部,你可以使用builder模式、工厂模式或任何类似的模式。
private
internal
public
qhhrdooz2#
我在试图扩展另一个文件中的密封类时遇到了这个问题。如果没有看到库代码,很难知道这是否也是您试图做的。密封类具有以下独特功能:
有关详细信息,请访问https://www.ericdecanini.com/2019/10/14/kotlins-sealed-class-enums-on-steroids/希望,这将有助于其他新的Kotlin谁也遇到这个问题。
lf5gs5x23#
默认情况下,类构造函数是包私有的,只需在声明构造函数之前添加public关键字即可。
bvjxkvbb4#
默认情况下,构造函数是公共的,因此需要删除internal关键字。
4条答案
按热度按时间uxhixvfz1#
这个错误意味着构造函数是私有的。根据你的评论,我假设你正在使用一个库。如果是这样的话,你必须找到一个不同的方法来初始化它。一些库有工厂或者类的构造器,所以查阅任何适用的文档(如果它是一个库或框架)。其他的也使用单例模式,或者其他形式的初始化,开发人员不直接使用构造函数。
然而,如果它是你的代码,从构造函数中移除
private
。如果它是internal
,并且你试图在模块外访问它,移除internal
。记住,the default accessibility ispublic
。或者,如果你想保持构造函数私有或内部,你可以使用builder模式、工厂模式或任何类似的模式。qhhrdooz2#
我在试图扩展另一个文件中的密封类时遇到了这个问题。如果没有看到库代码,很难知道这是否也是您试图做的。
密封类具有以下独特功能:
有关详细信息,请访问https://www.ericdecanini.com/2019/10/14/kotlins-sealed-class-enums-on-steroids/
希望,这将有助于其他新的Kotlin谁也遇到这个问题。
lf5gs5x23#
默认情况下,类构造函数是包私有的,只需在声明构造函数之前添加
public
关键字即可。bvjxkvbb4#
默认情况下,构造函数是公共的,因此需要删除
internal
关键字。