蓝牙 读取ServiceRecord时,出现类型不匹配错误

问题如题,具体代码如下:

//首先定义一个Vector类型的records来存服务记录

Vector records = new Vector();
.........
.........
.........
//获得服务
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
for (int i = 0; i < servRecord.length; i++) {
records.addElement(servRecord);//这里就把ServiceRecord类型的变量放入records中
}
}

.........
.........
.........
.........
//使用服务
for(int i=0;i<records.size();i++){
try{

    ServiceRecord sr = (ServiceRecord)records.elementAt(i);//就是这一句出错了!!错误提示在下方
    if(accessService(sr))
      {
      //访问到一个可用的服务即可
      break;
       }
    }catch(Exception e)
    {
       System.out.print(records.elementAt(i).getClass()+"\n");//这一句是为了测试才写出来的
       e.printStackTrace();

       }

      }

运行时的错误提示如下:
class [Lcom.sun.kvem.jsr082.bluetooth.ServiceRecordImpl;//这里是records.elementAt(i).getClass()的显示结果
java.lang.ClassCastException

请问为什么会出这种错误呢?类型应该是匹配的啊~~~

[code="java"]//获得服务
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
for (int i = 0; i < servRecord.length; i++) {
records.addElement([color=red]servRecord[/color]);//这里就把ServiceRecord类型的变量放入records中
}
} [/code]

profee,你这里有些错误,不是servRecord,应该是[color=red]servRecord[i][/color]

搞定 :)