今天做一个小程序的时候发现了这个问题:- public static <T> int Search(List<T> list,T key)
- {
- //记录索引
- final int index;
- Collections.binarySearch(list, key,new Comparator(){
- @Override
- public int compare(Object o1, Object o2) {
- // TODO Auto-generated method stub
- if(o1.equals(o2))
- {
-
- return 0;
- }
- else
- {
- index++;//此处出现错误,The final local variable xxx cannot be assigned, since it is defined in an enclosing type
- //最后通过Collections找到对象后会直接返回索引解决问题,这里值得注意啊,匿名类中如果想返回一些有用的值,就必须
- //将变量定义在上一个作用域中,还必须使用final修饰,并且只能被赋值一次,所以使用++时给报错了,希望大家注意这些小
- //小的问题哦!
- return -1;
- }
- }
- });
- return index;
- }
复制代码 |