如何避免对库模块中的公共字段进行lint检查?

时间:2017-05-06 23:16:16

标签: java android jar lint aar

我正在开发一个Android库,其中一个模型有一些我希望用户可以访问的公共字段。该类及其字段标记为公共。但是,我得到一个lint警告说“访问可以是私有的”。

除了简单地忽略它或使用@SuppressWarnings("WeakerAccess")之外,我有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果它告诉您可以将字段设为私有,那是因为您没有访问课程外的字段。

这表明您实际上并未对您的类进行测试,因为即使从测试类进行的访问也会被视为访问权限。

写一些测试!图书馆的用户会感谢你。

当然,如果你的测试在同一个软件包中,那么你会被告知这些字段可以是默认的可见性。

您应该编写的测试是从用户的角度测试您的库的测试:它们应该在不同的包中,以便您不会意外地测试无法访问的内容(如包私有字段和方法),因此无关紧要用户。这些测试也为您的图书馆文档提供了很好的“示例代码”(当然,您已经编写了这些代码)。

此外,暴露包外的字段是一种糟糕的设计 - 尤其是在库中。您应该提供访问者方法(getter和setter),以便您自己可以灵活地更改内部实现,而不会破坏API的现有用户。