我写了//classA
....
public void removeTask(int i)
{
v.remove(i);
}
public int findOid(int oid)
{
return v.indexOf(oid)+1;
}//classB
....
         int a = t.findOid(oid); t.removeTask(a);oid是个外部给的变量,并已经写入vector可是每次a的得到值都是0,不知道为什么 求教PS javaAPI上 写的int indexOf(Object elem) 这里的参数应该是Object 可我要在vector里找的elem类型是String
这里需要类型转换吗

解决方案 »

  1.   

    不需要类型转换另外你的findOid传入的 不是String对象,而是一个int型的基本类型数据
      

  2.   

    To kevinliuu(@。@) :
    谢谢
    但我不知道为什么就是得不到 a的值
    indexOf(oid)的作用是得到Vector中第一个元素为oid的位置吧?
      

  3.   

    Vector中不鞥存放基本数据类型
    可以参考一下代码
    Vector v= new Vector();
    v.add("123");
    v.add("12");
    v.add("124");
    v.add("125");
    v.add("126");
    int a=12;
    int b=v.indexOf(new Integer(a).toString());
    System.out.println(b);
      

  4.   

    我觉得你把 oid 转成 String 可能就可以了,你现在的 oid 的类型是 int。
      

  5.   

    indexOf
    public int indexOf(Object elem)搜索给定参数的第一个匹配项,使用 equals 方法测试相等性。 指定者:
    接口 List<E> 中的 indexOf
    覆盖:
    类 AbstractList<E> 中的 indexOf
    参数:
    elem - 一个对象。 
    返回:
    返回参数在此向量中的第一个匹配项的索引,也就是使elem.equals(elementData[k]) 为 true 的最小值 k;如果未找到该对象,则返回 -1。
    另请参见:
    Object.equals(Object)还有:
    public int findOid(int oid)
    {
    return v.indexOf(oid)+1;
    }
    可能应改成
    public int findOid(int oid)
    {
    return v.indexOf(new Integer(oid))+1;
    }
    注意vector.indexOf返回值的意义