加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入 – Google Guice的隐藏特性

发布时间:2020-12-14 01:03:58 所属栏目:百科 来源:网络整理
导读:Google Guice提供了一些强大的依赖注入功能。 我最近遇到了@Nullable功能,允许你将构造函数参数标记为可选(允许null),因为Guice默认不允许这些: 例如 public Person(String firstName,String lastName,@Nullable Phone phone) { this.firstName = checkNo
Google Guice提供了一些强大的依赖注入功能。

我最近遇到了@Nullable功能,允许你将构造函数参数标记为可选(允许null),因为Guice默认不允许这些:

例如

public Person(String firstName,String lastName,@Nullable Phone phone) {
    this.firstName = checkNotNull(firstName,"firstName");
    this.lastName = checkNotNull(lastName,"lastName");
    this.phone = phone;
}

https://github.com/google/guice/wiki/UseNullable

Guice的其他有用功能(特别是不太明显的功能)是什么?

没有一个意图被隐藏,但这些是我最喜欢的“奖金功能”在Guice:

> Guice可以inject a TypeLiteral<T>,有效地消除擦除。
> TypeLiteral可以做generic type resolution:这告诉你在List< String>上的get()返回一个迭代器< String&gt ;.
> Types是Java通用类型接口实现的工厂。
> Grapher可视化喷油器。如果您的定制提供程序实现HasDependencies,它可以扩充此图。
> Modules.override()是一个令人难以置信的方便。
>用于定义参数化键的简短语法:new Key< List< String>>(){}。
> Binder.skipSources()允许您编写其错误消息正确跟踪行号的扩展。
> The SPI. Elements.getElements()将一个模块分解成原子,Elements.getModule()将它们放回一起。>如果在模块中实现equals()和hashCode(),您可以多次安装该模块,没有问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读