title: Guice @Provides function with optional Nullable injection not works
body: <p>Code first:</p>
  
  <pre><code>@Slf4j
  public class HelperModule extends AbstractModule
  {
      @Override
      protected void configure()
      {
  
      }
  
      @Provides
      @Named("plugin")
      @Singleton
      public Reflections getReflections(@Nullable @Named("plugin-scope") String pluginScope)
      {
          if (pluginScope == null)
          {
              pluginScope = "me.wener";
          }
          log.info("Create plugin scanner for '{}'", pluginScope);
          return new Reflections(new ConfigurationBuilder()
                  .setUrls(ClasspathHelper.forPackage(pluginScope))
                  .addScanners(
                          new SubTypesScanner(),
                          new TypeAnnotationsScanner())
  //                .filterInputsBy(new FilterBuilder().include(".*\\.java").exclude(".*"))
          );
      }
  }
  </code></pre>
  
  <p>What I expected is <code>pluginScope</code> can be null and optional, I follow the instruction <a href="https://github.com/google/guice/wiki/UseNullable" rel="nofollow">Use @Nullable</a>, but this is not works, I still got </p>
  
  <pre><code>No implementation for java.lang.String annotated with @com.google.inject.name.Named(value=plugin-scope) was bound
  </code></pre>
  
  <p>What's wrong ?</p>
  
  <p><strong>EDIT</strong>
  BTW,The <code>@Nullable</code> is <code>javax.annotation.Nullable</code></p>