1

Dagger2 に慣れるために簡単なサンプルを作成していましたが、ある時点で行き詰まりました。シングルトンにしたいクラスがありますが、Dagger2 は私にさまざまなオブジェクトを与え続けます。

ここに私のソースコードがあります:

シングルトンクラス

public class SingletonClass {

}

SingletonComponent

@Singleton
@Component(modules = { SingletonModule.class })
public interface SingletonComponent {
    SingletonClass singleton();
}

シングルトンモジュール

@Module
public class SingletonModule {
    @Provides
    @Singleton
    SingletonClass provideSingletonClass() {
        return new SingletonClass();
    }
}

主要

public static void main(String[] args) {
    SingletonClass comp = DaggerSingletonComponent.create().singleton();
    System.out.println("singleton: " + comp);
    comp = DaggerSingletonComponent.create().singleton();
    System.out.println("singleton: " + comp);  
}

しかし、さまざまなオブジェクトが stdout に記録されています。理由はありますか?

4

2 に答える 2

0

それはばかげた間違いですが、誰かがそのような問題に遭遇した場合、私は答えを残します.

以前に作成したグラフからインスタンスを要求するのではなく、新しいグラフを作成していました。

于 2015-05-18T19:03:45.377 に答える