Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型中的方法不适用于java参数_Java_Object_Methods - Fatal编程技术网

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

类型中的方法不适用于java参数,java,object,methods,Java,Object,Methods,我在一个类中有两个方法。从第一个开始,我包含字符串和返回索引。在第二部分中,我尝试使用这个索引来查找元素。但是我在eclipse中有一个错误“类型设置中的方法containssStatsName()不适用于java参数”我必须做什么才能正常工作 SettingPage.class public int containsStatsName(String statusName){ int statListPos =0; int statsNumber = getStatusList.

我在一个类中有两个方法。从第一个开始,我包含字符串和返回索引。在第二部分中,我尝试使用这个索引来查找元素。但是我在eclipse中有一个错误“类型设置中的方法containssStatsName()不适用于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++;
        }
    }   
}
 SettingsPage sp = new SettingsPage(driver);

    sp.gotoLeadStat();

    sp.containsStatsName("new");

    sp.editStatsName();

您可以将方法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++;
    }
}   
public void editStatsName(int-leadPosition){
int leadNewPos=导线位置;
int buttonNumber=getButtonList.size();
int couterNew=0;

对于(int i=0;i而言,您的问题在于:

public void editStatsName(){
        int leadNewPos = containsStatsName();
您的containsStatsName方法接受一个字符串参数,没有一个定义了该名称的方法不接受任何参数,因此编译器告诉您有问题

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

public void editStatsName(String statusName){
        int leadNewPos = containsStatsName(statusName);
这样,您就为containsStatsName方法提供了它所需的参数

但是,由于editStatsName方法真正需要的参数是索引,而不是statusName,因此我将从editStatsName中抛出containsStatsName方法,正如您在main方法中已经调用的那样:

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 leadNewPos=containssstatsname();需要字符串参数。但我想使用return statListPos;那么我应该怎么做?不确定你的意思。拿着笔和纸,努力完成,这很容易理解。但是我不知道如何解决它,我是begginer,我不是java中最好的。你能告诉我应该怎么做吗?Nambari回答了这个问题,错误是由于
containsStatsName()
因为您没有提供字符串作为参数。如果您为
statusName
提供任何字符串,该函数将返回您的
statListPos
。这是一个对未来读者没有帮助的错误(由“一个简单的印刷错误”引起),因此我决定结束这个问题。
int statListPos = sp.containsStatsName("new");

sp.editStatsName(statListPos);