博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Guice系列之用户指南(七)
阅读量:6502 次
发布时间:2019-06-24

本文共 1324 字,大约阅读时间需要 4 分钟。

原文地址:https://code.google.com/p/google-guice/wiki/ToConstructorBindings

Constructor Bindings(构造器绑定):在父类型上绑定子类实现的构造函数。

贴代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public
interface
Animal {
    
void
say();
}
 
import
com.google.inject.AbstractModule;
 
public
class
AnimalModule
extends
AbstractModule {
 
    
@Override
    
protected
void
configure() {
        
bind(String.
class
).toInstance(
"Tom"
);
         
        
try
{
            
bind(Animal.
class
).toConstructor(Cat.
class
.getConstructor(String.
class
));
        
}
catch
(NoSuchMethodException e) {
            
addError(e);
        
}
         
        
System.out.println(
"run AnimalModule.configure()"
);
    
}
}
 
public
class
Cat
implements
Animal {
     
    
String name;
     
    
public
Cat(String name) {
        
this
.name = name;
        
System.out.println(
"run Cat.constructor()"
);
    
}
     
    
@Override
    
public
void
say() {
        
System.out.println(
"i am a cat"
);
    
}
     
    
@Override
    
public
String toString() {
        
return
"name==>"
+
this
.name;
    
}
}
 
import
com.google.inject.Guice;
import
com.google.inject.Injector;
 
public
class
Test {
    
public
static
void
main(String[] args) {
        
Injector injector = Guice.createInjector(
new
AnimalModule());
        
Animal cat = injector.getInstance(Animal.
class
);
        
System.out.println(cat);
        
cat.say();
    
}
}

执行结果:

run AnimalModule.configure()
run Cat.constructor()
name==>Tom
i am a cat

转载地址:http://auxyo.baihongyu.com/

你可能感兴趣的文章
【LVM】LVM自动扩容脚本
查看>>
ogre场景图与场景内容分离
查看>>
《分析服务从入门到精通读书笔记》第一章、代理键和渐变维度(5)
查看>>
ArchLinux安装笔记(续)(桌面篇)
查看>>
中断小笔记
查看>>
C#委托、事件、消息(入门级)
查看>>
python设置windows桌面壁纸
查看>>
Visual Studio 11 Beta新特性(一):安装VS11
查看>>
通信常用概念
查看>>
Oracle.start with … connect by [… and] prior…order siblings by …
查看>>
PreferenceFragment 使用 小结
查看>>
stringstream 使用方法
查看>>
FreeBinary 格式说明
查看>>
oracle相关链接
查看>>
有关奇葩的mex编程时的matlab出现栈内存错误的问题
查看>>
表的复制——sql语句
查看>>
面向对象接口多态
查看>>
pyqy5——控件2
查看>>
kubernetes-policy-controller项目搬家啦
查看>>
Spring知识——注解
查看>>