title: Dagger 2 injecting parameters of constructor
body: <p>I saw the following example on the <a href="http://google.github.io/dagger/">Dagger 2 website</a>: </p>
  
  <pre><code>class Thermosiphon implements Pump {
    private final Heater heater;
  
    @Inject
    Thermosiphon(Heater heater) {
      this.heater = heater;
    }
  
    ...
  }
  </code></pre>
  
  <p>and the documentation: </p>
  
  <blockquote>
    <p>When a new instance is requested, Dagger will obtain the required
    parameters values and invoke this constructor.</p>
  </blockquote>
  
  <p>When I write a Module to provide a <code>Thermosiphon</code> like</p>
  
  <pre><code>@Module
  public class ThermosiphonModule {
  
      @Provides
      @Singleton
      Thermosiphon provideThermosiphon() {
          return new Thermosiphon(???);
      }
  
  }
  </code></pre>
  
  <p>the <code>Thermosiphon</code> constructor still requires a <code>Heater</code> as an argument, rendering the whole 'automatic injection of constructor dependencies' useless. </p>
  
  <p>I tried </p>
  
  <pre><code>return new Thermosiphon(null); 
  </code></pre>
  
  <p>and </p>
  
  <pre><code>return new Thermosiphon(); 
  </code></pre>
  
  <p>(empty constructor) and hoped for Dagger2 to pick up that I wanted the missing <code>Heater</code> to be injected, yet the Heater of the provided <code>Thermosiphon</code> is always null; </p>
  
  <p>I verified though my <code>HeaterComponent</code> / <code>HeaterModule</code> are working fine and are able to provide a <code>Heater</code>. </p>
  
  <p>Do I completey misunderstand the whole feature of 'Dagger satisfies constructor dependencies for you' or am I missing something?</p>