2017-02-09 1 views
0

Un peu plus clair que la question. Je veux obtenir la même instance d'une classe partout où la classe est utilisée à l'intérieur d'un objet. J'utilise google guice à travers le projet. Voici un exemple pour mieux expliquer.Comment obtenir la même instance d'une classe partout où il est utilisé à l'intérieur de l'objet

@Singleton class A { 
    C c; 
    D d; 

    @Inject public A(C c, D d){ 
     this.c = c; 
     this.d = d; 
    } 

} 

class B { 
    Map<Integer,String> hashmap = new Hashmap<>(); 

    public String getInfo(Integer number){ 
     return hashmap.get(number); 
    } 
} 

@Singleton class C { 
    Class B; 
    @Inject public C(B b){ 
     this.b = b; 
    } 
} 

@Singleton class D { 
    Class B; 
    @Inject public D(B b){ 
     this.b = b; 
    } 
} 

Chaque fois qu'un nouveau A est créé. Je veux que AC et D pour partager le même B, mais je ne veux pas tous A pour partager un B. De plus, C et D sont injectés dans le constructeur et A est un Singleton.

Répondre

0

Vous devez définir votre propre étendue.

Pour ce faire, lisez la page Custom Scopes sur le wiki de Guice.