最近,我下载了Roboguice并进行了尝试。总的来说,我喜欢它,并且我认为它可以简化Android开发过程中的某些方面,但是我遇到了一种尚未找到解决方案的情况:我想注入一个类,但是该类有一个或多个其他的构造函数。参数。

在这种情况下,我将如何指定选择用于实例化的构造函数,并将值传递给构造函数?

例如,我的类TestRobo具有2个构造函数,我想从第二个构造函数实例化该对象,并传递firstNamelastName作为参数:

public class TestRobo implements ITestRobo {

    public TestRobo(String fullName) {
        //....
    }

    public TestRobo(String firstName, String lastName) {
        //...
    }
}


现在,如果我像这样注入它:

@Inject
private ITestRobo testRobo;


它引发了一个例外,即找不到合适的构造函数。

最佳答案

您需要将ITestRobo绑定到其TestRobo实现。您可以通过在ITestRobo上添加@ProvidedBy(TestRobo.class)批注来执行此操作,也可以在configure()方法中添加模块并将bind(ITestRobo.class).to(TestRobo.class)。

关于android - Roboguice-使用参数实例化构造函数中的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12369540/

10-10 09:37