assisted-inject

    1热度

    1回答

    我有一个有两个构造函数的类。我正在尝试使用guice factory来创建这个类的实例。如果没有参数传递,那么应该调用默认的构造函数。如果传递了一个参数,那么应该调用带有参数的构造函数。但是,即使我将参数传递给工厂方法,仍然默认构造函数被调用。带参数的构造函数根本不会被调用。以下是我的工厂班。 public interface MapperFactory { PigBagMapper crea

    1热度

    1回答

    这个问题关于Guice @Assisted和@Provides的正确用法,以及如何去做。 目前的设计我指的是这样的: 在层次结构顶部的类也是被暴露给客户端(基本上,公共API),它的外观类似的东西只有类: public class Manager{ public Manager(int managerId, ShiftFactory sf, WorkerFactory wf); // meth

    6热度

    2回答

    假设我有一个第三方类,如下所示: public class MyObject { @Inject public MyObject(Foo foo, Bar bar) { ... } } 现在假设我有一个工厂接口,像这样: public interface MyObjectFactory { public MyObject build(Bar bar); }

    1热度

    1回答

    假设有A类即的构造看起来就像这样: public A(@Assited long id, @Assisten String name, ServiceA serviceA, ServiceB serviceB) 还有的AFactory: public interface AFactory{ A create(long id, String name); } 所以创建的实例AI

    1热度

    1回答

    我在我的应用程序中使用了guice框架。我有一个场景,其中一个类可能需要具有相同接口C的多个实例(但出于不同目的),如示例中所示。我正试图用guice中的注释工具来解决这个问题。 如下面的例子所示,我希望ConcreteImpl的配置也被guice注入。但问题是type1,type2和type3实例的配置可能不同。假设我拥有这些实例的配置,是否有一种方法可以根据请求配置的实例的上下文(由注释表示)

    2热度

    1回答

    我正在使用Guice和FactoryModuleBuilder。通常,只需定义工厂的界面就足够了,Guice将自动注入实施。 但是,我挣扎的部分是工厂中的方法使用泛型。假设我有以下几点。由接口定义的构造实例的基本类型。 interface Foo<T> { T get(); } 并且Foo接口的两个实现由以下两个类定义。 class FooA<T> implements Foo<T

    0热度

    1回答

    创建obejcts我应该在两种不同的方式注入了一类: 通用的单 定制版本RequestScoped。 例子: public class TaskProcessorService implements TaskProcessor { private final TaskRegistry taskRegistry; @Inject public TaskProcessor

    -1热度

    1回答

    我阅读了几个教程和手册,但它们都跳过了我实际需要的部分,这是您运行这些东西的实际部分。 我的场景如下。 我有一个Connection接口: public interface Connection { void open(Selector selector); void send(NetMessage message); } 我有一个生产的实现,需要一个SocketFact

    10热度

    1回答

    我遇到AssistedInject问题。我跟着这个链接 https://github.com/google/guice/wiki/AssistedInject 上的说明,但是当我运行我的应用程序,我得到一个错误: ERROR [2015-04-23 14:49:34,701] com.hubspot.dropwizard.guice.GuiceBundle: Exception occurred

    0热度

    1回答

    假设我有一个类,如下所示: public class ComplicatedImpl implements Complicated { @Inject public ComplicatedImpl(Integer normal, @Assisted String assisted); public void addListener(Listener listener