类型中的方法不适用于参数java

时间:2015-10-02 14:14:19

标签: java object methods

我在一个班级中有两个方法。从第一个我包含字符串和返回索引。在第二个我尝试使用此索引来查找元素。但我在eclipse中有错误“类型SettingsPage中的方法containsStatsName()不适用于参数java”我需要做什么才能正常工作?

SettingPage.class

public int containsStatsName(String statusName){
    int statListPos =0;
    int statsNumber = getStatusList.size();
     for(int i=0;i<statsNumber;i++){
         if(getStatusList.get(i).getText().toLowerCase().contains(statusName)){
             statListPos = i+1;
         }

         }
     return statListPos;     
}

public void editStatsName(){
    int leadNewPos = containsStatsName();
    int buttonNumber = getButtonList.size();
    int couterNew = 0;
    for(int i=0;i<buttonNumber;i++){
        if(couterNew == leadNewPos){
            getButtonList.get(i).click();           
            break;
        }else{
            couterNew++;
        }
    }   
}

MainPage.class

 SettingsPage sp = new SettingsPage(driver);

    sp.gotoLeadStat();

    sp.containsStatsName("new");

    sp.editStatsName();

2 个答案:

答案 0 :(得分:0)

您可以将方法 containsStatsName 嵌套为第二种方法的参数...

sp.gotoLeadStat();

sp.editStatsName(sp.containsStatsName("new"));

并修改editStatsName方法。

public void editStatsName(int leadPosition){
int leadNewPos = leadPosition;
int buttonNumber = getButtonList.size();
int couterNew = 0;
for(int i=0;i<buttonNumber;i++){
    if(couterNew == leadNewPos){
        getButtonList.get(i).click();           
        break;
    }else{
        couterNew++;
    }
}   

答案 1 :(得分:0)

你的问题在于:

public void editStatsName(){
        int leadNewPos = containsStatsName();

您的 containsStatsName 方法接受一个String参数,没有定义该名称的方法没有参数,因此编译器会告诉您存在问题。

您可以通过为其指定参数statusName来修改 editStatsName 方法:

public void editStatsName(String statusName){
        int leadNewPos = containsStatsName(statusName);

通过它为 containsStatsName 方法提供所需的参数。

但是由于你的 editStatsName 方法真正需要的参数是索引而不是statusName - 我会抛出 containsStatsName 方法 editStatsName ,因为您已在主方法中调用它:

public void editStatsName(int leadNewPos){
    int buttonNumber = getButtonList.size();
    int couterNew = 0;
    for(int i=0;i<buttonNumber;i++){
        if(couterNew == leadNewPos){
            getButtonList.get(i).click();           
            break;
        }else{
            couterNew++;
        }
    }

并在主方法中调用这两个方法:

int statListPos = sp.containsStatsName("new");

sp.editStatsName(statListPos);