private void init() { for (ConvertFrom<?> convertManager : ConvertManagerImpl.convertManagers()) { add(convertManager); } for (Binding<ConvertFrom<?>> binding : _injector.bindings(new Key<ConvertFrom<?>>() {})) { add(binding.provider().get()); } for (Binding<Convert<?,?>> binding : _injector.bindings(new Key<Convert<?,?>>() {})) { TypeRef convertRef = TypeRef.of(binding.key().type()) .to(Convert.class); Class<?> sourceType = convertRef.param(0).rawClass(); Class<?> targetType = convertRef.param(1).rawClass(); add(sourceType, targetType, (Convert) binding.provider().get()); } }