所以我有三个类:Main,UserGroup和User。在User中,我有三个在UserGroup类中调用的方法,以及一个我想在Main类中调用的方法。使用User类中的方法我在UserGroup中创建了一个ArrayList,每个元素中有三个不同的字符串(对不起,如果是错误的术语),并使用User类中的final方法,我试图更改其中一个字符串。
我试图调用的方法是
public class User {
String UserType;
//some code removed
public void setUserType(String x) {
if ("user editor admin".contains(x)) {
UserType = x;
}
else {
UserType = "editor";
}
}
}
我试图在一个叫做管理员的UserGroup上调用它,通过把它放在main中来包含arraylist:
editors.setUserType("editor");
因为这是我从UserGroup调用其他方法但我得到
的错误error: cannot find symbol
editors.setUserType("editor");
^
symbol: method setUserType(String)
location: variable editors of type UserGroup
1 error
编辑(我的主要内容):
我通过
创建一个UserGroup编辑器UserGroup editors = new UserGroup();
并使用
将值添加到ArrayListeditors.addValues();
然后打印元素
editors.printData();
这一切都有效,因为这些方法都在UserGroup类中。
答案 0 :(得分:0)
您可能想要阅读主题overloading of methods in Java
它使用标题
查找方法public void setUserType()
但您只定义了方法
public void setUserType(String x)
因此,您应该使用以下内容调用您创建的方法:
<强> editors.setUserType( “Foobar的”)强>
答案 1 :(得分:0)
看起来编辑不是真正的用户。也许它是一个List&lt;用户&gt;在这种情况下,它将是
fn = fn === undefined && scope.isFn(ary)
? <Function> ary
: fn;
答案 2 :(得分:0)
UserGroup是否包含User对象的集合?
setUserType(...)在User上定义,但似乎没有在UserGroup上定义。
有几种方法可以做你正在尝试做的事情。
从UserGroup中获取User对象列表,并在main中单独调用setUserType(...)。类似的东西:
List<User> users = editors.getUsers() //assuming UserGroup.getUsers() exists
for(User user : users)
user.setUserType("whatever");
向UserGroup添加一个名为setUserType(...)的方法,该方法遍历其User对象集合并设置类型:
public setUserType(String type) {
for(User user : users) //assuming you have a collection of User objects
user.setUserType(type);
}
如果我错误地描述了这一点,请添加UserGroup的完整实现(或至少包含显示用户如何包含的部分),我们可以提供更多信息。