首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何简洁地定义参数化类的Guice绑定?

问如何简洁地定义参数化类的Guice绑定?
EN

Stack Overflow用户
提问于 2011-11-20 07:09:53
回答 3查看 622关注 0票数 0

下面的Java代码设置Guice绑定。它使用AbstractModule的匿名子类来设置绑定,并使用configure的实现来设置绑定,并使用TypeLiteral的匿名子类为特定类型参数(as described here)创建Map到HashMap的绑定。

代码语言:javascript
复制
injector = Guice.createInjector(new AbstractModule() {
    @Override protected void configure() {
        bind(new TypeLiteral<Map<String, Event>>() {})
            .to(new TypeLiteral<HashMap<String, Event>>() {});
    }
});

,我怎么能用写这篇文章?

据我所见,X趋向不支持实现匿名类或嵌套类(文档中没有提到它们,我也无法猜出一个有效的语法)。因此,我必须在单独的AbstractModule文件中定义我的TypeLiteral和每个TypeLiteral实现。不太简洁。我是不是错过了一个使这件事运转良好的X趋向或Guice技巧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-21 20:09:28

您可以使用闭包来实现模块接口:

注射器= Guice.createInjector Guice.createInjector

但是,这并不能解决类型文字的问题。您必须使用Java来实现这一功能,但我认为这不会有什么影响。

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 11:05:50

如何引入一个真正的类而不是一个匿名的内部类呢?

票数 1
EN

Stack Overflow用户

发布于 2012-05-04 13:07:07

在相关的说明中,您可以使用X趋向闭包来实现Guice的提供者接口。

例如,在Java中调用IResourceScopeCache.get:

代码语言:javascript
复制
@Inject
private IResourceScopeCache cache;

public EvaluatedResource getEvaluatedResource(EObject object) {
    final Resource resource = object.eResource();
    return cache.get("key", resource, new Provider<Object>() {
        public Object get() {
            return evaluate(resource);
        }
    });
}

public EvaluatedResource evaluate(Resource resource) {
    ...; // create EvaluatedResource evaluatedResource
    return evaluatedResource; // return it
}

在X极体中成为:

代码语言:javascript
复制
@Inject
IResourceScopeCache cache

def getEvaluatedResource(EObject object) {
    val resource = object.eResource
    cache.get("key", resource, [|evaluate(resource)])
}

def evaluate(Resource resource) {
    ... // create EvaluatedResource evaluatedResource
    evaluatedResource // return it
}

诀窍是[|...]是一个零参数的函数,在本例中是Provider.get()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8200023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档