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

标签 java android jar lint aar

我正在开发一个 Android 库,其中一个模型有几个我希望用户可以访问的公共(public)字段。该类及其字段标记为公共(public)。但是,我收到一条 lint 警告,提示“访问可以是私有(private)的”。

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

最佳答案

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

这表明您实际上并没有在测试您的类,因为即使是来自测试类的访问也算作访问。

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

当然,如果您的测试在同一个包中,您将被告知这些字段可以是默认可见性。

你应该编写的测试是那些从用户的角度测试你的库的测试:它们应该在不同的包中,这样你就不会意外地测试无法访问因此与库无关的东西(比如包私有(private)字段和方法)用户。这些测试也为您的图书馆文档(当然您也编写过)提供了很好的“示例代码”。


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

关于java - 如何避免对库模块中的公共(public)字段进行 lint 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826259/

相关文章:

java - 如何将默认方法添加到 Guice 接口(interface)

android - 使用 TableLayout 时行中项目的对齐方式

android - Firestore - DocumentSnapshot 和 QueryDocumentSnapshot 之间的区别

java - servlet-api.jar - jar 未加载到本地主机上

java - 我在使用 LibGDX TileMaps 时遇到了困难

java - 带有 Freemarker 的 Netbeans 模板 : built-in with argument fails

java - 如何从 JPanel 类访问 JFrame 组件?

android - 保护 Android Assets 文件夹中的 html/css/js

jar - 在没有 JRE 但使用 OpenSSL 的情况下签署 JAR?

java - 通过 Windows 服务更新 RCP