【发布时间】:2021-12-20 15:01:25
【问题描述】:
我有两节课。 Museum 和 Painting。
Painting 类按预期工作,但我遇到了 Museum 类的问题。
我们被要求创建一个方法签名,该签名将 addPainting(String, String) 具有两个参数 Artist 和 Location,并将新的 Painting 添加到博物馆绘画收藏中。
当我尝试编译代码时,没有找到合适的匹配方法?
有人知道我在这里缺少什么吗?
public class Museum {
//creating the fields
private ArrayList<Painting> paintings;
private String name;
/**
* Create a Museum Class
*/
public Museum(String aMuseum) {
paintings = new ArrayList<>();
name = aMuseum;
}
/**
* Add a painting from the Paintings class
*/
public void addPainting(String artist, String location) {
paintings.add(artist, location);
}
}
【问题讨论】:
-
paintings::add采用Painting类型的单个参数,而不是Strings 类型的两个参数。 -
您遗漏了许多关键概念,而不是立即修复此代码,我建议您先阅读泛型 (docs.oracle.com/javase/tutorial/java/generics/index.html),然后阅读 ArrayList
-
你想添加一个新的
Painting;所以,应该是paintings.add(new Painting(artist, location));