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