今天写一个二分搜索法时,本想测试偷懒,然后传入参数,结果直接方法报错,想起来应该就和对象有关。
首先看看图,这里有个rank方法,入参为 (int,int[] ),返回值为int:
接着我来正确的调用了这个方法:
但是之前我为了让自己懒一点,我使用这样调用,哦,忽略numList和for 循环,结果却是这个样儿:
图上报错,说是方法参数不匹配,如果Create method 的话,参数就变成了 11 个int 型,当时还想怎么回事儿呢?。。。
好好一想,才发现自己犯了一个很基本的错误,我们平常申明一个数组时使用 :
int[] arr = {..., ..., ...}
此时这个大括号和包含里面的已经赋值给一个 int[] 对象,这个{..., ..., ...} 已经是一个对象的值。
显然这个对象的值{..., ..., ...}并不等于错误图片中rank方法中的{..., ..., ...},因为这个rank方法中的{..., ..., ...}不是对象值,因为并没有对它进行赋值,这只是一组int 型的数值。
上面的那个rank方法中的{}直接被忽略掉了。