当他们首先选择参数较少的构造函数时有什么缺点?
此致。
注入器尝试根据参数类型信息(并不总是可用)、类中的构造函数列表(包括继承的构造函数)以及它可以提供的可用参数来猜测调用哪个构造函数。在某些框架中,参数是显式提供的,并且注入器不需要解析构造函数,但并非总是如此。
我写了一些简单的构造函数依赖注入代码。当多个构造函数是依赖注入的有效候选者时,它非常类似于正则表达式匹配:假定最长的字符串更具体,因此首先使用。
事实上,注入器假定具有更多参数的构造函数“包装”了具有更少参数的构造函数:
MyClass(A,B){
// does something with A and B
}
MyClass(A,B,C){
// should call the previous one
this(A,B);
//then does something with C
}
这适用于任何类型的方法(不仅是构造函数)。