通常,Guice需要创建对象来注入它们.如果你刚刚打电话给新的StarryEyes(名字),Guice就不会去看那个对象,所以不能注入它.您可以做的一件事是在创建它之后,在对象上调用inject.injectMembers(obj).不过,我不建议您避免在代码中引用注入器.

你真正想要的是Assisted Inject.通过Assisted Inject,你可以为你的类声明一个这样的构造函数:

@Inject public StarryEyes(MyValidator validator,@Assisted String name)

这意味着验证器是Guice应该注入的参数,而name必须“辅助”(即在创建实例时提供).

然后,您将创建一个如下所示的界面:

public interface StarryEyesFactory {

StarryEyes create(String name);

}

通过Assisted Inject,Guice可以为您实施该工厂.你这样绑定:

bind(StarryEyesFactory.class).toProvider(

FactoryProvider.newFactory(StarryEyesFactory.class,StarryEyes.class));

然后,您可以在任何要创建其实例的地方注入StarryEyesFactory.您以前会打电话给新的StarryEyes(名称),现在可以调用starryEyesFactory.create(name).当在工厂中调用create(name)时,它将使用名称并将其传递给构造函数,并提供绑定的验证器本身.

install(new FactoryModuleBuilder().build(StarryEyesFactory.class));

java guice_java – Guice Inject类中的字段不是由Guice创建的相关推荐

  1. java遍历类中所有字段

    代码: //遍历类中所有字段信息 https://blog.csdn.net/weixin_34346099/article/details/94036015public static void re ...

  2. 利用反射技术修改类中的字段(成员变量的反射)

    题目:利用反射技术修改类中的字段及成员变量的反射 作者:Vashon 一.首先定义一个类如下: class ReflectPoint {private int x; //私有的public int y ...

  3. Java 11:String类中的新方法

    Java 11:String类中的新方法 Java 11没有很多特定于语言的功能.因此,令人惊讶的是,在Java String Class中引入了6种新方法. Java 11 String类新方法 让 ...

  4. Java反射之Filed(类中的属性对象)

    通过反射机制获取类中的属性对象. 1.获取类中所有的public属性(包括父类):getFields(): public class TestFiled {class A{public int age ...

  5. java有且仅有一个main_组成java Application的若干类中,有且仅有一个主类,只有主类中含有主方法main();...

    [单选题]Java 应用程序入口的 main 方法,其声明格式可以是(A) [填空题]点的水平投影与正面投影的连线( ) 于 OX 轴. [单选题]-Is there anything wrong w ...

  6. java一个项目只有一个主类吗_组成Java Application的若干类中,有且仅有一个主类,只有主类中含有主方main()。...

    组成Java Application的若干类中,有且仅有一个主类,只有主类中含有主方main(). A:对 B:错 正确答案:对 解析: 组成Java Application的若干类中,有且仅有一个主 ...

  7. 一个java程序中什么是主类_下列哪个是Java应用程序主类中正确的main方法?_学小易找答案...

    [判断题]用佛尔哈德法测定Ag + 时,不用先除去氮的低价氧化物.汞盐等杂质. [单选题]下列哪个是Java应用程序主类中正确的main方法? [判断题]javac.exe 命令文件存放在 JDK 安 ...

  8. 创建一个矩形类的子类——正方形类,类中定义求面积方法、重写求周长的方法.在主类中,输入一个正方形边长,创建正方形对象,求正方形的面积和周长

    题目: 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法.再创建一个矩形类的子类--正方形类,类中定义求面积方法.重写求周长的方法.在主类中,输入一个正方形边长,创建正方形对 ...

  9. java技术培训之File类中常用的构造方法

    File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:"D:\file\a.txt",也可以是相对于当前目录而言的相对路径,如:"src\Hello.j ...

  10. java 静态方法重写_Java 类中可以覆盖静态方法吗?

    Java技术栈 www.javastack.cn 打开网站看更多优质文章 Java 类中可以覆盖静态方法吗? 不,你不能在Java中覆盖静态方法,但在子类中声明一个完全相同的方法不是编译时错误,这称为 ...

最新文章

  1. java斐波那切数列_Java中的递归方法
  2. 「Azure」数据分析师有理由爱Azure之二-立即申请帐号开始学习之旅
  3. 数据归一化处理方法_数据预处理:归一化和标准化
  4. java nextgaussian(),java.util.Random.nextGaussian()
  5. 独家 | 2019届互联网校招本科薪酬清单|湾区人工智能
  6. 路由器距离向量算法计算举例_文本去重算法:Minhash/Simhash/Klongsent
  7. MFC中窗口类、句柄的获取
  8. 原生Ajax实现formdata
  9. pip install numpy 安装numpy失败
  10. Unity UGUI坐标转换
  11. 身份证有效验证方法,
  12. 键盘的工作原理和分类
  13. 永恒之蓝复现(win7/2008)
  14. unicode编码转gb2312编码并显示中文(cjava)
  15. 体育测试成绩用什么软件制表,如何用电子表格进行体育成绩的统计.docx
  16. 输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:
  17. weixingzh.com微信公众号网站介绍
  18. 悟透delphi 第二章 DELPHI与WIN32时空
  19. 嵌入式Linux mplayer 单声道音频 改双声道 播放 方法
  20. 计算机工程被退稿,一稿多投被拒稿,确实是你的错

热门文章

  1. UU跑腿前端中台方案
  2. SpringOne 2017重要公告
  3. Win10家庭版安装VMware虚拟机-开启时出现蓝屏的问题
  4. 太神了-图片可以转换成Word文档了
  5. R. Shankar《Principles of Quantum Mechanics (2nd)》(山卡《量子力学原理(第二版)》)双语目录
  6. 识别车牌是什么神经网络,bp神经网络车牌识别
  7. Eclipse使用Ant编译时报错Perhaps JAVA_HOME does not point to the JDK
  8. Oracle的卸载步骤(详细图示)
  9. 电力系统自动化远程监控方案
  10. 电子工程师元器件应用必备宝典