最佳答案
在过去的几年中,我一直认为在 Java 中,反射在单元测试中得到了广泛的应用。由于必须检查的一些变量/方法是私有的,因此有必要读取它们的值。我一直认为反射 API 也用于此目的。
上周我测试了一些包,因此编写了一些 JUnit 测试。像往常一样,我使用反射来访问私有字段和方法。但是我的上司检查了代码,对此并不满意,他告诉我反射 API 并不是用来进行这种“黑客行为”的。相反,他建议修改生产代码中的可见性。
使用反射真的是不好的做法吗? 我真不敢相信-
Edit: I should have mentioned that i was required that all tests are in a separate package called test (so using protected visibilty e.g. wasn't a possible solution too)