Q:

Dagger 2 dependencies in non-activity classes

So there are many-many tutorials that show how to have a dependency injected into an activity class using Dagger 2.  But for some reason dependencies never seem to be inserted into classes that aren't activities/fragments/services.  I would like to know how to insert dependencies into a normal class. 
Right now, I'm trying to have dagger inject into a field, but the field remains null.  I'm assuming the mistake is that I'm not telling dagger to do its injecting.  But I'm not sure how to resolve this.  
@Module
public class TestModule {
    @Provides 
    @Singleton
    String provideTestString() {
        return "test string";
    }
}

@Singleton
@Component(modules = { TestModule.class })
public interface TestComponent {
    void inject(TestClass testClass);
    String getTestString();
}

class TestClass {
    @Inject
    String testString;

    public boolean isTestStringNull() {
        return testString == null;
    }
}

Log.d("---", "is test string null: " + new TestClass().isTestStringNull());//is true

While I may call DaggerTestComponent.create() in a subclass of Application, it won't be available inside random classes that don't know about Application.  So what is the correct way to get dagger to initialize my field? 

A:

class TestClass {
    @Inject
    String testString;

    @Inject
    TestClass() {}
}

@Singleton
@Component(modules = { TestModule.class })
public interface TestComponent {
    TestClass testClass();

    String testString();
}

Log.d("---", "is test string null: " + component.testClass().isTestStringNull());//is false

