开发者

Google Guice 2.0

I have a class that loads some files into a specific object that itself contains several objects that contain different fields. Exmaple:

class RootItem
{
public SubItemType1 sub1;
}

class SubItemType1
{
public SubItemType2 sub2;
public int data1;
public float data2;
}

class SubItemType2
{
public int data3;
publi开发者_高级运维c boolean data4;
}

Alright now I have another class that contains a method that will return a RootItem with all of the sub-items set to specific values.

Then I would like to, using Guice, be able to call that loader once and then whenever someone requests an @Inject of the SubItemType1 class then the RootItem.sub1 object is returned and if someone requests a SubItemType2 class then RootItem.sub1.sub2 is returned.

Can this be achived?

Thanks,

ExtremeCoder


In your module:

private RootItem rootItem; /* Initialize this field e.g. in the module's constructor */

@Provides
RootItem provideRootItem() {
    return rootItem;
}

@Provides
SubItemType1 provideSubItemType1() {
    return rootItem.sub1;
}

@Provides
SubItemType2 provideSubItemType2() {
    return rootItem.sub1.sub2;
}

Then you can inject the RootItem, SubItemType1 and SubItemType2 in your code as usual.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜