[英]the method in the type is not applicable for the arguments java
我在一个班级中有两种方法。 从一开始我就包含字符串和返回索引。 第二,我尝试使用这个索引来查找元素。 但是我在 Eclipse 中有错误“SettingsPage 类型中的方法 containsStatsName() 不适用于参数 java”我必须做什么才能正常工作??
设置页面.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 leadNewPos = containsStatsName();
您的containsStatsName方法采用 String 参数,没有定义该名称的方法不采用任何参数,因此编译器会告诉您存在问题。
您可以通过为其提供参数 statusName 来修改您的editStatsName方法:
public void editStatsName(String statusName){
int leadNewPos = containsStatsName(statusName);
有了它,你给你的containsStatsName方法它需要的参数。
但是由于您的editStatsName方法真正需要的参数是索引而不是 statusName - 我会将containsStatsName方法从editStatsName 中抛出,因为您已经在 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 statListPos = sp.containsStatsName("new");
sp.editStatsName(statListPos);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.