我正在开发一个 Android 库,其中一个模型有几个我希望用户可以访问的公共(public)字段。该类及其字段标记为公共(public)。但是,我收到一条 lint 警告,提示“访问可以是私有(private)的”。
除了简单地忽略它或使用 @SuppressWarnings("WeakerAccess")
之外,我还有什么办法可以解决这个问题吗?
最佳答案
如果它告诉您可以将字段设为私有(private),那是因为您没有访问类外的字段。
这表明您实际上并没有在测试您的类,因为即使是来自测试类的访问也算作访问。
写一些测试!图书馆的用户会为此感谢您。
当然,如果您的测试在同一个包中,您将被告知这些字段可以是默认可见性。
你应该编写的测试是那些从用户的角度测试你的库的测试:它们应该在不同的包中,这样你就不会意外地测试无法访问因此与库无关的东西(比如包私有(private)字段和方法)用户。这些测试也为您的图书馆文档(当然您也编写过)提供了很好的“示例代码”。
此外,在包外公开字段是糟糕的设计——尤其是在库中。您应该提供访问器方法(getter 和 setter),以便您以后可以灵活地更改内部实现,而不会破坏 API 的现有用户。
关于java - 如何避免对库模块中的公共(public)字段进行 lint 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826259/