评论由:ataggart 提出
来自邮件列表的我的评论
如果测试失败,这可能意味着Numbers.shiftLeft(long,int)被选用了,而不是Numbers.shiftLeft(Object,Object)。
由于1N是一个Object(可以超过long的大小),方法选择是错误的,因此补丁是无效的。
鉴于1N是一个可以超出long大小的Object,所用的方法是错误的,因此补丁有缺陷。
简单地修改paramArgTypeMatch的提议是不充分的,因为在编译器中有一种机制决定了选择哪一个方法,而这个机制并不足够智能,不能作出这类决策。
关于“简单修改paramArgTypeMatch”的建议不够充分,因为偏爱一个方法而不偏爱另一个方法的问题存在于编译器中,并且编译器不足以作出这样的决策。