2017-02-09 2 views
0

Немного яснее вопроса. Я хочу получить один и тот же экземпляр класса везде, где класс используется внутри объекта. Я использую google guice через проект. Вот пример, чтобы лучше объяснить.Как получить тот же экземпляр класса во всем мире, что он используется внутри объекта

@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; 
    } 
} 

Таким образом, каждый раз создается новый A. Я хочу, чтобы AC и D делили те же B, но я не хочу, чтобы все A разделили один B. Также в конструктор вводятся C и D, а A - Singleton.

ответ

0

Вы должны определить свой собственный объем.

Для этого прочитайте страницу Custom Scopes на вики Guice.

Смежные вопросы