如何避免对库模块中的 public 字段进行 lint 检查?
How to avoid lint checks on public fields in library module?
我正在开发一个 Android 库,其中一个模型有几个 public 字段,我希望用户可以访问这些字段。 class 及其字段标记为 public。但是,我收到一个 lint 警告说 "Access can be private".
除了简单地忽略它或使用 @SuppressWarnings("WeakerAccess")
之外,我还有其他办法处理这个问题吗?
如果它告诉您可以将这些字段设为私有,那是因为您没有访问 class 之外的字段。
这表明您实际上并没有测试您的 class,因为即使来自测试 class 的访问也算作访问。
写一些测试!图书馆的用户会感谢你的。
当然,如果您的测试在同一个包中,您将被告知这些字段可以是默认可见性。
您应该编写的测试是从用户的角度测试您的库的测试:它们应该在不同的包中,这样您就不会意外地测试无法访问的东西(如包私有字段和方法),因此与用户无关。这些测试也非常适合 "example code" 您图书馆的文档(当然您也写过)。
此外,在包外公开字段是糟糕的设计——尤其是在库中。您应该提供访问器方法(getter 和 setter),以便您以后可以灵活地更改内部实现,而不会破坏 API.
的现有用户
我正在开发一个 Android 库,其中一个模型有几个 public 字段,我希望用户可以访问这些字段。 class 及其字段标记为 public。但是,我收到一个 lint 警告说 "Access can be private".
除了简单地忽略它或使用 @SuppressWarnings("WeakerAccess")
之外,我还有其他办法处理这个问题吗?
如果它告诉您可以将这些字段设为私有,那是因为您没有访问 class 之外的字段。
这表明您实际上并没有测试您的 class,因为即使来自测试 class 的访问也算作访问。
写一些测试!图书馆的用户会感谢你的。
当然,如果您的测试在同一个包中,您将被告知这些字段可以是默认可见性。
您应该编写的测试是从用户的角度测试您的库的测试:它们应该在不同的包中,这样您就不会意外地测试无法访问的东西(如包私有字段和方法),因此与用户无关。这些测试也非常适合 "example code" 您图书馆的文档(当然您也写过)。
此外,在包外公开字段是糟糕的设计——尤其是在库中。您应该提供访问器方法(getter 和 setter),以便您以后可以灵活地更改内部实现,而不会破坏 API.
的现有用户