android - Roboguice - 从带参数的构造函数实例化对象

标签 android android-layout android-intent roboguice

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

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

例如,我有一个类 TestRobo 有两个构造函数,我想从第二个构造函数实例化对象,传递 firstName, lastName作为参数:

public class TestRobo implements ITestRobo {

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

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

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

@Inject
private ITestRobo testRobo;

它抛出找不到合适的构造函数的异常。

最佳答案

免责声明1:我也是新手。

免责声明 2:还没有尝试过。

根据Google自己的Guice Documentation,指定使用哪个构造函数的方法是在其上添加@Inject装饰器

    class Test{

    //This constructor is ignored
    Test(){}

    //This constructor is called during injection
    @Inject
    Test(Context pContext){}


    }

在这种情况下,注入(inject)器调用第二个构造函数并尝试注入(inject)一个 Context 对象来调用它。如果找不到,则会抛出异常。

显然,你也可以将@Inject 装饰器放在其他方法上,在注入(inject)时调用构造函数后调用。

来源:Official Google Guice Documentation

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

相关文章:

android - 在 Android 的 Traceview 中打开跟踪文件时出错

android - Android Activity 的自定义形状按钮

Android 在 BottomNavigation 上制作重叠的 FloatingActionButton

android - Android 客户端无法识别来自服务器的 JSON gcm 消息

android - 使用复选框将 TextView 值发送到另一个 Activity 使用图像按钮 onclick

java - 如何从单个 Activity 更新多个 Activity

java - Android ScrollView 添加新行

java - 发现蓝牙设备

android - Google Maps Android API v2 创建一个新的 LocationSource

java - 如何将布局添加到卡片 View 中?