Java 从另一个对象获取数组列表
我现在有点被一项任务困住了,希望你能告诉我哪里出了问题 我正在构建一个简单的iTunes程序,目前正在研究一种方法,让所有音乐人参与某一特定曲目,并将其显示为字符串,例如Frank Black、Joey Santiago、Kim Deal等。该方法需要通过检索艺术家对象内的数组列表并将其显示来工作 但是我的get方法有问题。我知道我应该实现一个get方法,以便Track对象可以访问Artist对象中的字段,但是我尝试过的所有方法都会发送错误消息。到目前为止,我已经尝试过这样一种增强的“for循环”:Java 从另一个对象获取数组列表,java,Java,我现在有点被一项任务困住了,希望你能告诉我哪里出了问题 我正在构建一个简单的iTunes程序,目前正在研究一种方法,让所有音乐人参与某一特定曲目,并将其显示为字符串,例如Frank Black、Joey Santiago、Kim Deal等。该方法需要通过检索艺术家对象内的数组列表并将其显示来工作 但是我的get方法有问题。我知道我应该实现一个get方法,以便Track对象可以访问Artist对象中的字段,但是我尝试过的所有方法都会发送错误消息。到目前为止,我已经尝试过这样一种增强的“for循环
for (String member : members.getMembers() ) {
public class Artist {
private List<String> members;
// ...
public List<String> getMembers() {
return Collections.unmodifiableList(members);
}
}
public class Track {
private Artist artist;
// ...
public String getMusicians() {
StringBuilder sb = new StringBuilder();
int length;
for (String member : artist.getMembers()) {
sb.append(member).append(", ");
}
return sb.substring(0, sb.length() - 2);
}
}
其中“members”是一个ArrayList,其中包含每个音乐家姓名的字符串,但它向上发送找不到符号变量成员。然后我试了一下:
for (String member : Artist.members.getMembers() ) {
但也就是说,不能从静态上下文引用非静态变量成员。我觉得我错过了一些基本的东西。你们有谁知道它可能是什么吗?如果成员是一个持有字符串的arrayList,那么你们应该这样做
for (String m: members){
}
或
艺术家是一个类,而不是一个类的实例。通常,艺术家没有任何成员,而约翰·多伊(John Doe)可以有一份成员名单
您需要获得一个艺术家实例才能请求其成员假设每个曲目都有一个艺术家,并且每个艺术家可能有多个音乐家成员,那么您正在寻找类似以下内容:
for (String member : members.getMembers() ) {
public class Artist {
private List<String> members;
// ...
public List<String> getMembers() {
return Collections.unmodifiableList(members);
}
}
public class Track {
private Artist artist;
// ...
public String getMusicians() {
StringBuilder sb = new StringBuilder();
int length;
for (String member : artist.getMembers()) {
sb.append(member).append(", ");
}
return sb.substring(0, sb.length() - 2);
}
}
首先需要实例化一个艺术家对象,然后迭代包含艺术家的ArrayList
class Artist {
private List<String> artists;
...
public List<String> getArtists() {
return artists;
}
...
}
你能发布你的主类和艺术家类吗?你能告诉我们你在哪里尝试这样做吗?你能告诉我们你是如何声明成员ArrayList的吗。你用了static关键字吗?请再添加一点代码:是的,如果您像这样访问它,那么它应该是公共的,否则您需要访问器方法