Java向存储Painting的ArrayList添加元素时报无匹配方法错误如何解决
错误原因
你当前的写法错误的核心是没有按照需求先构造Painting对象,而是直接把两个字符串参数传给了ArrayList的add方法:
- 你的
paintings是ArrayList<Painting>类型,它的add方法只有两个合法重载:- 接收单个
Painting类型参数:往集合末尾追加元素 - 第一个参数为int类型下标、第二个为
Painting类型:往集合指定位置插入元素
你传入两个String参数,自然找不到匹配的方法,触发编译报错。
- 接收单个
修复方法
按照要求先使用传入的艺术家、位置参数实例化Painting对象,再将对象添加到集合中即可,修改后的addPainting方法代码如下:
public void addPainting(String artist, String location) { // 构造Painting实例,参数顺序要和你已有的Painting类构造方法保持一致 Painting painting = new Painting(artist, location); // 将实例添加到集合 paintings.add(painting); }
如果你的Painting类构造方法的参数顺序不是「艺术家、位置」,自行调整传参顺序即可。
内容的提问来源于stack exchange,提问作者user17349337
相关产品推荐
相关产品推荐

