web-dev-qa-db-ja.com

Android @ Injectおよび@InjectViewアノテーションの意味

@Injectおよび/または@InjectViewアノテーションの意味および目的はAndroid/Javaプログラミング?

どうすれば使用できますか?

よろしくお願いします!

14
Geraldo Neto

Androidの場合、これらのアノテーションは Roboguiceフレームワーク の一部です。これらは、Android環境で 依存性注入 を提供するために使用されます。

これにより、基本的なPOJO、ビュー、または別のリソースであるかどうかに関係なく、目的のリソースのインスタンスを直接挿入できます。これが RoboGuice wiki からのPOJOの例です:

class MyActivity extends RoboActivity {
    @Inject Foo foo; // this will basically call new Foo();
}

これは些細なことですが、基本的にインジェクションポイントは、インジェクションされたFooクラスのインスタンスの作成/管理からクラスを独立させ、代わりに、この場合はFooのデフォルトコンストラクターを呼び出すことによってFoo自体にその責任を負わせることです。 MyActivityはFoo自体を実際に作成する詳細がないため、これにより、モックなどを介したテストが容易になります。

16
whitlaaa