为什么 Android 库中包含的一些类不是公开的?对我来说,这没有任何实际意义,基本上只是引入了一个障碍,无法为最近发布的一些漏洞百出的小部件开发临时修复程序。
具体来说,我说的是 Android Design Support Library 中的 TextInputLayout
.
例如,如果我想制作一个覆盖构造函数中某些代码的自定义小部件,我不能这样做,因为 CollapsingTextHelper
不是公共(public)类。我将不得不下载源代码并将相关类复制到我的项目中,但实际上并没有什么可以阻止我这样做。那么一开始不公开它有什么意义呢?
据我了解,随着库的不断更新和改进,您只需添加 @Deprecated
注释即可指示特定类已过时或已过时,并且仍然存在以防止遗留代码从打破。
我知道库简单地公开所有类是没有意义的,但我不明白为什么不应该公开对实现小部件必不可少的类。当其中一个类被更好的版本替换时,或者当小部件以完全不同的方式实现时,为什么他们不能添加 @Deprecated
注释?
最佳答案
简而言之 - 通过将这些类设为非公开,他们保留随时更改/删除此类的权利,而不会破坏任何客户(您的)代码。
看看已经有多少 @Deprecated
方法/类,您就会明白为什么这很重要。
关于java - 为什么有些类在 Android 支持库中不公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083194/