5

java中的默认可见性意味着只有同一个java包中的其他类可以访问它。我当然看到了它的用途,并且已经多次使用它。

另一方面,我遇到的 90% 的默认可见性只是来自忘记添加任何可见性关键字的开发人员。

因此,一方面,有合法用途,另一方面,它经常掩盖不良代码。您在开发团队中做什么?

4

3 回答 3

12

我通常会尝试让每个人都从最有限的范围开始,只有在我们看到设计中有必要时才开始向外扩展。有时,从 to 迁移的决定private也是package-private由于我们需要编写测试而不必遵循使用模拟框架的路线(请参阅Powermock)。

除此之外,我们在可变性上遵循相同的心态。一切都始于final且仅当我们看到需要修改状态时才将其删除。

于 2012-12-05T15:38:25.547 回答
5

如果我特别想要包访问,我把/* package */放在方法/变量等的定义之前,以确保人们知道我实际上是这个意思,而不是偷懒。虽然我很少使用它。

于 2012-12-05T15:50:14.403 回答
4

我鼓励人们使用private我本来希望作为默认设置的。

有时,我会运行代码分析,将访问修饰符减少到只需要的部分。

于 2012-12-05T15:31:08.677 回答