程序是这样的:
public class aaa extend bbb{
        public static class SelectValue {
public String value;
static int i=0;
public SelectValue(String s) {
this.value = s;
} public static String[] buildArray(String[] arr) {

String[] sv = new String[arr.length];
for (i = 0; i < arr.length; i++){
sv[i] = new String(arr[i]);
System.out.println("sv["+i+"]=" + sv[i]);
}
return sv;
}
}

public String[] dropDownContainsOptions(String s) {

return SelectValue.buildArray(instance.getSelectOptions(getLocator(s,
domIdLocators)));
}

public boolean compareArrayToValue(String s, String num, String value){
return dropDownContainsOptions(s)[Integer.parseInt(num)].equals(value);
}
}
在我自己的机器上执行的好好的,在别人机器上调用compareArrayToValue方法
就会报:no such method SelectValue.buildArray
为什么呀,是静态方法的调用有问题吗

解决方案 »

  1.   

    no such method SelectValue.buildArray 
    没有这个方法?
      

  2.   

    你们的意思是不要把buildarray卸载selectvalue里
    而是和compareArrayToValue并列的写?
      

  3.   

    Class SelectValue  不要写在 Class aaa里
      

  4.   

    运行了一下,还可以,没有报错....确认一下你的
    return SelectValue.buildArray(instance.getSelectOptions(getLocator(s, 
    domIdLocators))); 
    中的instance.getSelectOptions(getLocator(s,domIdLocators))的返回值是String[]吗?
      

  5.   

    是的,我用eclipse工具,工程是建在自己机器上的,在自己机器上运行也ok,但是拿到其他机器上就说nusuchmethod了
    现在我还是重新写了一个方法:
    public String[] buildArray(String[] arr) {

    String[] sv = new String[arr.length];
    for (int i = 0; i < arr.length; i++){
    sv[i] = new String(arr[i]);
    System.out.println("sv["+i+"]=" + sv[i]);
    }
    return sv;
    }
    public String[] dropDownContainsOptions(String s) {

    return buildArray(instance.getSelectOptions(getLocator(s,
    domIdLocators)));
    }

    public boolean compareArrayToValue(String s, String num, String value){

    return dropDownContainsOptions(s)[Integer.parseInt(num)].equals(value);
    }
    这样就ok了,但不知道为什么原先那种方法自己机器可以,别人机器不行
      

  6.   

    在别人的机器上编译通过没有,使用的jdk是否一致
      

  7.   

    jdk都是我给他们装的,莫名其妙啊