Wie binde ich an einen Provider, der einen Annotation-Wert in Guice verwendet?

Gibt es eine Möglichkeit, sich an einen Anbieter zu binden, der den Annotationswert des Ziels in Google Guice interpretiert?

Beispiel:

bind(Resource.class)
    .annotatedWith(MyAnnotation.class)
    .toProvider(new MyProvider<MyAnnotation, Resource>{
        public Resource get(MyAnnotation anno){
            return resolveResourceByAnnoValue(anno.value());
        }
    });

Ich möchte das Feld einer Android-Aktivitätsklasse durch kommentierte Bindung initialisieren. Aufgrund der eindeutigen ID sollte es mehrere Ressourcen in Anspruch nehmen müssen.

Ursprüngliche Weise:

public class TestActivity extends Activity{
    private TextView textView;
    private Button testButton;

    public void onAfterCreate(...){
        // set UI declaration resource.
        setContentView(R.layout.activity_test);

        // initialize fields, it must be done after setting ui definition.
        textView = (TextView) findViewById(R.id.textView);

        .... initialize other fields, hook them...

    ...
}

Ich möchte die Benutzeroberfläche und ihr Feld deklarativ binden, nicht pragmatisch wie oben:

@ResourceID(R.layout.activity_test)
public class TestActivity extends InjectiveActivity{
    @ResourceID(R.id.textView) // Auto generated static resource id constant
    private TextView textView;

    @ResourceID(R.id.testButton)
    private Button testButton;

    ...
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage