我目前有一个Module impl使用以下绑定:

binder.bindInterceptor(Matchers.any(), Matchers.any(),
    new WidgetInterceptor());


我希望能够以编程方式打开/关闭此功能,这就是我已经准备的内容:

private boolean widgetInterceptionEnabled = true;

public void configure(Binder binder) {
    Matcher<Object> matcher = null;
    if(widgetInterceptionEnabled)
        matcher = Matchers.any();
    else
        matcher = Matchers.not(Matchers.any());

    binder.bindInterceptor(Matchers.any(), matcher,
        new WidgetInterceptor());
}


这是告诉Guice不匹配任何东西的正确方法吗?还是我使用的API错误?

提前致谢!

最佳答案

这会不会更简单?:

public void configure(Binder binder) {

    if(widgetInterceptionEnabled){
        binder.bindInterceptor(Matchers.any(), Matchers.any(),
            new WidgetInterceptor());
    }

}

09-05 02:55