匕首:代码生成还是反思?

时间:2013-06-24 02:03:30

标签: dependency-injection dagger

我如何知道Dagger的代码生成是否正常?我看到几个线程,用户最终发现正在使用反射。

我在Eclipse中运行了示例咖啡机应用程序,当我在例如设置断点时Thermosiphon我在堆栈中看不到任何生成的类。我确实看到了ReflectiveAtInjectBinding,这让我怀疑我的设置不正确。

1 个答案:

答案 0 :(得分:3)

因此,有几个方面。

  1. Dagger最近删除了(或即将远程)模块的反射回退 - 所以你应该在下一个版本中不必拥有反射模块适配器。如果未生成模块适配器,则会出现阻止进一步操作的特定错误。

  2. 对于代码生成验证,可能值得创建一个小的验证脚本,确认包含@Module的任何源都生成了$$ ModuleAdapter类。假设您在Maven中运行,那么这可以附加到项目中的验证步骤。

  3. 如果您在eclipse中运行,那么您需要使用m2e插件,并且需要在maven设置中启用以允许maven在eclipse中配置注释处理设置。

  4. 一个警告。如果您有m2e管理注释处理配置,并且如果您将dagger本身作为eclipse项目打开,那么您必须在项目的maven设置中禁用“从Workspace项目中解析依赖项”