问题描述
问题如题,具体代码如下://首先定义一个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请问为什么会出这种错误呢?类型应该是匹配的啊~~~
解决方案
//获得服务public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {for (int i = 0; i < servRecord.length; i++) {records.addElement([color=red]servRecord[/color]);//这里就把ServiceRecord类型的变量放入records中}} profee,你这里有些错误,不是servRecord,应该是servRecord[i]搞定